UNION 쿼리에서 Order By
구현데이터베이스 프로그래밍에서 UNION 쿼리는 다양한 테이블이나 하위 쿼리의 결과를 결합합니다. 그러나 UNION 문에서 ORDER BY를 직접 사용하면 여러 테이블에서 데이터를 추출하고 결과를 정렬해야 할 때 예외가 발생할 수 있습니다. 다음 예에 표시된 대로:
<code class="language-sql">SELECT table1.field1 FROM table1 ORDER BY table1.field1 UNION SELECT table2.field1 FROM table2 ORDER BY table2.field1</code>
이 쿼리는 특히 MS Access Jet 데이터베이스 엔진을 사용할 때 실패합니다. 해결책은 각 하위 쿼리를 자체 ORDER BY 절로 묶는 것입니다.
<code class="language-sql">SELECT * FROM ( SELECT table1.field1 FROM table1 ORDER BY table1.field1 ) DUMMY_ALIAS1 UNION ALL SELECT * FROM ( SELECT table2.field1 FROM table2 ORDER BY table2.field1 ) DUMMY_ALIAS2</code>
ORDER BY 문은 하위 쿼리를 괄호로 묶고 별칭(DUMMY_ALIAS1 및 DUMMY_ALIAS2)을 할당하여 각 하위 쿼리에 개별적으로 적용됩니다. 이렇게 하면 오류가 발생하지 않고 결합된 결과의 올바른 순서가 보장됩니다.
위 내용은 오류를 방지하기 위해 UNION 쿼리에서 ORDER BY를 올바르게 사용하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!