두 테이블을 합쳐서 중복된 항목 제거하기
Back-End/Data Base 2020. 3. 21. 21:58UNION 쿼리는 2개 이상의 테이블을 결합해서 결과값을 출력할 때 중복된 값을 제거할 수 있는 쿼리입니다.
아래와 같이 두가지의 테이블이 있다고 가정할때 OBJECTID컬럼의 C,D,F는 중복이 되므로 한번만 출력을 해야 합니다.
그럴경우에는 아래와 같이 쿼리를 작성후 실행하면 중복된 값이 없는 결과가 출력됩니다.
단, 두 테이블간에 컬럼의 갯수를 맞춰줘야 되므로, objecttable테이블에 null값이 들어간 groupid라는 컬럼을 새로 만들어서 사용했습니다.
1 2 3 4 5 6 | SELECT GROUPID, OBJECTID, OBJECTNM, ORDERSEQ FROM ( SELECT GROUPID, OBJECTID, OBJECTNM, ORDERSEQ FROM mappingtable WHERE GROUPID = 200 UNION SELECT NULL AS GROUPID , OBJECTID, OBJECTNM, ORDERSEQ FROM objecttable WHERE OBJECTID NOT IN (SELECT OBJECTID FROM mappingtable WHERE GROUPID = 200) ); | cs |
UNION으로 합칠 테이블의 검색값중에 WHERE가 들어가 있는 경우에는 검색값이 두줄이상 되면 에러가 발생이 되기때문에 NOT IN을 추가로 넣었습니다.
'Back-End > Data Base' 카테고리의 다른 글
오라클 -> MySQL SQL 마이그레이션 (0) | 2022.11.29 |
---|---|
오라클에서 발생할 수 있는 에러코드 모음 (0) | 2020.11.11 |
TABLE Join (0) | 2020.01.26 |
Join 이란? (0) | 2020.01.23 |
Oracle 순위를 매길수 있는 함수 (RANK, DENSE_RANK, ROW_NUMBER) (0) | 2019.09.26 |