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 |
댓글