데이터분석, SQL 조인은 계속 헷갈립니다. 다시한번 SQL의 조인종류를 공부해봅니다.
- Innner 조인이란?
교집합이다. A와 B에 동시에 존재하는 집합을 이너조인이라 한다.
Select
A.Customer_ID, A.First_Name
,A.Last_name, A.Email
,B.Amount, B.Payment_date
From Customer A
Inner Join Payment B
On A.Customer_ID = B.Customer_ID
Where A.Customer ID=2
- 고객은 여러건의 결제를 할 수 있다. 고객 1 : 결제 M -> 1:M 관계가 된다.
Select count (*) From Payment ;
- Outer 조인이란?
( 보통 SQL를 배울 때 처음 만나는 위기 )
[ Left Outer Join ]
: A는 모두 출력하고, B는 A에 있는 것들만 출력
: 특정 칼럼을 기준으로 매칭된 집합을 출력하는데 한쪽의 집합은 모두 출력하고
다른한쪽의 집합은 매칭되는 컬럼의 값만 출력하는 것.
: 즉, 왼쪽에 있는것은 다 보여줘라
: 보통 SQL를 쓸때는 OUTER는 생략해서 'LEFT'만을 쓰기도 한다.
B중에 A에 없는 값들은 'Null' 값이 된다.
[ Left Outer Only ]
: Where B.ID IS NULL
A에만 존재하는 값만 뽑게 된다. 이런경우가 LEFT OUTER ONLY다.
Select A.ID AS ID_A
, A.FRUIT AS FRUIT_A
, B.ID AS ID_B
, B.FRUIT AS FRUIT_B
FROM BASKET_A A
LEFT JOIN BASKET_B B
ON A.FRUIT = B.FRUIT
WHERE B.ID IS NULL
[ RIGHT Outer Join ]
: B는 모두 출력하고, A는 B에 있는 것들만 출력
[ RIGHT Outer Only ]
: Where A.ID IS NULL
B에만 존재하는 값만 뽑게 된다. 이런경우가 RIGHT OUTER ONLY다.
이렇게 Join의 종류를 공부하고나니, 이렇게 이미지를 올리신 벤다이어그램이 있습니다. 이 그림을 보고나니 더욱 명확해지는 SQL의 조인종류들입니다.
[ Inner Join ]
[ Left Join ]
[ Right Join ]
[ Ourter Join ]
[ Left Exculuding Join ]
[ Right Exculuding Join ]
[ Outer Exculuding Join ]
▼ 출처 : https://www.codeproject.com/Articles/33052/Visual-Representation-of-SQL-Joins#_comments
- 그런데 저 벤다이어그램보고도 헷갈려서 생활코딩사이트에서 또 추가적으로 찾아보았었습니다. 위 설명을 보시고도
헷갈리시는 분들은 아래 포스팅참고해보세요.
'데이터분석공부' 카테고리의 다른 글
파이썬 프로그램 설치방법 (0) | 2022.05.29 |
---|---|
데이터분석공부 기초SQL HOUR함수 (0) | 2022.05.28 |
데이터분석공부 기초SQL 순위함수 ROW NUMBER, RANK OVER, DENSE RANK (0) | 2022.05.28 |
데이터분석공부 기초SQL To char / To date (0) | 2022.05.28 |
데이터분석공부 SQL기초 CASE WHEN THEN ELSE END AS (0) | 2022.05.28 |