유니온 고유를 사용하는 동안 하위 쿼리의 결과 순서가 보존되도록하고 싶습니다. 유니온을 수행하는 동안 중복을 필터링하려면 "유니언 고유"가 필요합니다. 예를 들어MySQL - "유니언 고유"구문을 사용하는 동안 하위 쿼리의 레코드 순서 유지
는 : 순서에 의해 반환 내가 이것을 실행하면, 나는 서브 쿼리에서 주문 레코드 (오름차순 [columnA3]에 의해 TABLEA 순서에서 columnA1, columnA2 선택) 것을 기대하고
select columnA1, columnA2 from tableA order by [columnA3] asc
union distinct
select columnB1, columnB2 from tableB
(먼저 온다 by columnA3 asc) 그 다음에 tableB의 값이옵니다.
다른 더미 열을 추가 할 수 없다고 가정하고 있는데, 이렇게하면 유니온을 작동하지 않게 할 수 있기 때문입니다. 그래서,이 작동하지 않습니다
UNION은 별도의 세트에서-속는를 해제하지만, 세트 또는내에서하지 않는 것이
select column1, column2 from
(select column1, column2, 1 as ORD from tableA order by [columnA3] asc
union distinct
select column1, column2, 2 as ORD from tableB
) order by ORD
왜 더미 열을 추가 할 수 없습니까? 그게 뭐가 잘못 되었 니? – Karolis
@Karolis tableA 및 tableB의 레코드의 고유성은 {column1 쌍을 기준으로 설정됩니다. column2}. 순서를 보장하기 위해 더미 열을 추가하면 고유하지 않게됩니다. – user965692
그래, 너는 케이드의 대답에서 무엇을하려고하는지 이해했다. – Karolis