Microsoft Access UNION 쿼리: 테이블 요구 사항
Microsoft Access 데이터베이스에서 단일 행을 검색하는 간단한 SELECT 문에서는 FROM
절을 생략할 수 있지만, UNION
또는 UNION ALL
작업에서는 단일 행 선택의 경우에도 FROM
절이 필요합니다.
쿼리 제한
UNION
절에 데이터 소스 없이 UNION ALL
또는 FROM
을 시도하면 "쿼리 입력에 테이블이나 쿼리가 하나 이상 포함되어야 합니다."라는 오류가 발생합니다. 예:
<code class="language-sql">SELECT "Mike" AS FName UNION ALL SELECT "John" AS FName</code>
이 쿼리는 실패합니다.
문제 해결
행 기반 데이터에 UNION
또는 UNION ALL
을 사용하려면 소스 테이블의 필드 참조 여부에 관계없이 FROM
절이 필수입니다. 해결책은 더미 단일 행 테이블을 만드는 것입니다.
<code class="language-sql">CREATE TABLE Dual (id COUNTER PRIMARY KEY); INSERT INTO Dual (id) VALUES (1); ALTER TABLE Dual ADD CONSTRAINT there_can_be_only_one CHECK ((SELECT Count(*) FROM Dual) = 1); SELECT "foo" AS my_text FROM Dual UNION ALL SELECT "bar" FROM Dual;</code>
또 다른 접근 방식은 TOP 1
또는 WHERE
절을 사용하여 결과를 기존 테이블의 단일 행으로 제한하는 것입니다.
중요 고려 사항: Jet 4에 도입된 CHECK
제약 조건은 ADO와만 호환됩니다. 이 해결 방법을 구현할 때 DAO를 사용하면 구문 오류가 발생할 수 있습니다.
위 내용은 단일 행 선택에 대해서도 Microsoft Access의 UNION 쿼리에 테이블이 필요한 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!