카테고리 없음

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



 
 
 

 

 

반응형