본문 바로가기

프로그래밍 학습/SQL

[MSSQL] 조인(JOIN)구문에 대해서 알아보자

728x90




간단하게 정리하자면 두 개 이상의 테이블을 서로 묶어서 하나의 결과 집합으로 만들어 내는 것을 의미합니다. 말로 설명보다는 구문을 이해하면서 알아가는게 좋을 것 같습니다. 직접 해보시고 테이블도 보면서 이해를 하시면 될 것 같습니다.



INNER JOIN(내부 조인)

조인 중에서 가장 많이 사용 되는 조인이다. 가장 많이 쓰고 일반적으로 JOIN 이라고 얘기하는 것은 INNSER JOIN을 뜻한다. 


사용형식

SELECT 필요한 열목록 FROM 첫째테이블 INNER JOIN 둘째테이블 ON 조인조건

 WHERE 검색조건


사용 예

SELECT A.userid,A.name FROM 테이블 A INNER JOIN 테이블 B ON A.userid=B.userid WHERE A.userid='PSW'  


구문 설명

첫 번째 테이블 A와 두번 째 테이블 B의 조인조건은 A.userid=B.userid 이고 조건은 A.userid='PSW'인 것이다. 이 말은 테이블 A와 테이블 B 를 서로 비교해서 A와 B의 userid값이 같은 조건의 필요한 열목록만 가져온다. 


-----------------------------------------------------------------------------------------------------------------


OUTER JOIN(외부조인) -> LEFT,RIGHT,FULL JOIN

조인의 조건에 만족되지 않는 행까지도 포함시키는 것이다.  유용하게 쓰일때가 많다


사용형식

SELECT 필요한 열목록 FROM 첫번째 (LEFT) 테이블 (LEFT or RIGHT or JOIN) 

JOIN 두번째 테이블(RIGHT 테이블) ON 조인조건 WHERE 검색조건


사용 예

SELECT A.userid,A,name,B.phone FROM 테이블 A LEFT JOIN user_Table B ON A.userid=B.userid 


구문 설명

LEFT JOIN 의 의미를 왼쪽 테이블(테이블 A)의 것은 모두 출력된다라고 해석하면 쉽다.그렇기 때문에 조건이 성립되지 않는 것들은 NULL 값으로 처리된다. 그럼 RIGHT JOIN은 오른쪽 테이블(테이블B)의 것은 모두 출력된다라고 생각하시면 됩니다.


예)테이블 A와 B가 있다고 가정해보겠습니다.

결과값보면 바로 이해되니까 해보시길!! 테이블 B에는 id가 1 인 유저가 없으니까

addr이 NULL값으로 찍힙니다.


테이블  A                                     


userid 

name 

1

박승원 

박윤화 

박성재 


테이블 B


 id

addr 

울산 

부산 

 

결과 값


userid 

name 

addr 

박승원 

NULL 

 2  

박윤화 

울산 

박성재 

부산