본문 바로가기
Programming

[SQL] join

by 단창 2020. 3. 23.

 

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의 바깥부분은 포함하지 않음.

반응형