SELECT A.col1, B.col2
FROM tableA A
LEFT OUTER JOIN tableB B
ON A.col1 = B.col2;
tableA.col1은 모든 column이 나오고 tableB.col2는 A와 겹치는 column만 나온다. 안겹치는 column은 NULL로 나온다.
그래서 A.col1중 B.col2에 등장하지 않는 A.col1-B.col2 (차집합을 구하려면)
SELECT A.col1, B.col2
FROM tableA A
LEFT OUTER JOIN tableB B
ON A.col1 = B.col2
WHERE B.feature_class IS NULL;
반대로 B.col2중 A.col1에 등장하지 않는 차집합(B.col2-A.col1)을 구하려면,
SELECT A.col1, B.col2
FROM tableA A
RIGHT OUTER JOIN tableB B
ON A.col1 = B.col2
WHERE A.feature_class IS NULL;
뜻이 LEFT OUTER -> LEFT table의 바깥부분은 포함하지 않음
RIGHT OUTER -> RIGHT talbe의 바깥부분은 포함하지 않음.
반응형
'Programming' 카테고리의 다른 글
[vscode] Explorer에서 single click로 fileopen 하고 싶지 않을때 (double click 설정) (0) | 2021.11.25 |
---|---|
[docker] 사용법 (0) | 2020.05.26 |
[python] pythonic 한 코드 쓰기 (0) | 2020.02.26 |
[sql] 구문(where, group by 등)의 실행 순서 (0) | 2020.01.31 |
[sql] select 상위 10개만 출력하기 (0) | 2019.04.01 |