카테고리 없음
MS SQL JOIN (FULL, LEFT, RIGHT OUTER JOIN, INNER JOIN 활용 하기)
helloworld IT
2020. 3. 29. 21:10
반응형
조인은 말그대로 연관이 있는 테이블들 2개 이상을 가져와서
데이터들을 같이 볼 수 있게 하는 기술이다.
조인에따라 성능과 이슈를 좌지우지 할 정도로 매우 중요하다.
가장 많이 쓰는 JOIN 몇 가지 설명해볼까한다.
쉽게 생각해서 벤다이어그램을 생각하면 될 것 같다.
INNER JOIN 교집합 (동일한 값이 있는 것만 받아옴)
FULL OUTER JOIN 합집합 (동일한 값 상관없이 모든 값을 받아옴)
/*INNER JOIN 내부 조인에서 동일한 값이 있는 것만 받아옴 */
SELECT T1.PLAYER_NAME INNERJOIN,
T1.TEAM_ID,
T2.HOMETEAM_ID,
T1.E_PLAYER_NAME
FROM PLAYER T1
INNER JOIN STADIUM T2
ON
T1.TEAM_ID = T2.HOMETEAM_ID
ORDER BY T1.TEAM_ID ASC,
T1.PLAYER_NAME ASC
/* FULL OUTER JOIN 내부 조인에서 동일한 값 상관없이 모든 값을 받아옴 */
SELECT T1.PLAYER_NAME FULLOUTERJOIN,
T1.TEAM_ID,
T2.HOMETEAM_ID,
T1.E_PLAYER_NAME
FROM PLAYER T1
FULL OUTER JOIN STADIUM T2
ON
T1.TEAM_ID = T2.HOMETEAM_ID
ORDER BY T1.TEAM_ID ASC,
T1.PLAYER_NAME ASC
LEFT/RIGHT OUTER JOIN 차집합 (A-B, B-A 의 결과 + 교집합 부분을 받아옴)
LEFT.RIGHT 부분을 기준으로 JOIN을 시도하기 때문에, 해당 테이블에 NULL 있어도 받아옴
/* LEFT OUTER JOIN */
SELECT T1.PLAYER_NAME LEFTOUTERJOIN,
T1.TEAM_ID,
T2.HOMETEAM_ID,
T1.E_PLAYER_NAME
FROM PLAYER T1
LEFT OUTER JOIN STADIUM T2
ON
T1.TEAM_ID = T2.HOMETEAM_ID
ORDER BY T1.TEAM_ID ASC,
T1.PLAYER_NAME ASC
/* RIGHT OUTER JOIN */
SELECT T1.PLAYER_NAME RIGHTOUTERJOIN,
T1.TEAM_ID,
T2.HOMETEAM_ID,
T1.E_PLAYER_NAME
FROM PLAYER T1
RIGHT OUTER JOIN STADIUM T2
ON
T1.TEAM_ID = T2.HOMETEAM_ID
ORDER BY T1.TEAM_ID ASC,
T1.PLAYER_NAME ASC
반응형