본문 바로가기
개발관련/SQL

INNER JOIN, LEFT JOIN, RIGHT JOIN

by guuuuuuu 2016. 6. 21.


INNER JOIN은 두개의 집합이 있으면 교집합이라고 보면 된다.


모두의 값에 있는 행들만 포함시키고 그렇지 않은 행들은 제외!


일반 조인시 ,(콤마) 생략하고 INNER JOIN을 추가하고, WHERE절 대신 ON절을 사용하면 된다. (INNER는 생략해서 그냥 JOIN이라고만 써도 무관)


EX)

SELECT e.empno, e.ename

FROM dept d INNER JOIN emp e

ON d.deptno=e.deptno;


     ∥


SELECT e.empno, e.ename

FROM dept d, emp e

WHERE d.deptno=e.deptno;


위 두 구분은 같은 결과를 나타낸다!




2. LEFT JOIN

 


 

 

SELECT * FROM T1 LEFT JOIN T2 ON T1.id = T2.id;


JOIN의 왼쪽에 있는 테이블을 기준으로, JOIN의 오른쪽 테이블에 조건에 맞는 값이 없으면 NULL 로 표시!!
결국 JOIN의 왼쪽 테이블의 값은 모두 표시된다.

 

<firstTable>

 no

id 

age 

 1

01 

10 

 2

02

20

 3

03

30

<secondTable>

 id

Year 

Month 

 01

 2015

01 

 02

 2016

02

<resultTable>

 no

id 

age 

id 

Year 

Month 

 1

01 

10 

01 

2015 

01 

 2

02

20

02

 2016

 02

 3

03

30

NULL

 NULL

NULL 

select * from firstTable

left join secondTable

on firstTable.id = secondTable.id;


3. RIGHT JOIN


SELECT * FROM T1 RIGHT JOIN T2 ON T1.id = T2.id;


LEFT의 반대!


출처 : http://www.nimtox.com/bbs/board.php?bo_table=sql&wr_id=2&sca=Mysql


'개발관련 > SQL' 카테고리의 다른 글

SQL :: Substring  (0) 2016.08.05
SQL :: CONVERT()  (0) 2016.08.05
SQL :: CASE WHEN  (0) 2016.08.05
함수 정리  (0) 2016.07.26
SQL 쿼리 끄적끄적  (0) 2016.06.21

댓글