여러 개의 테이블을 특정 키로 결합하는 것을 테이블 참조, 조인식이라고 한다.
SELECT t1.name, t2.salary
FROM employee AS t1 INNER JOIN info AS t2 ON t1.name = t2.name;
MySQL에서는 JOIN, INNER JOIN, CROSS JOIN은 동일하다. 표준 SQL에서는 ON 구문에서는 INNER JOIN을 사용하고 다른 경우는 CROSS JOIN을 사용한다.
ON을 사용해서 결합 조건을 표현할 수 있고 결합에 사용하는 키 이름이 같은 경우 USING 사용해서 표현할 수 있다.
SELECT t1.name, t2.salary
FROM employee t1 JOIN info t2 USING (name);
내부 조인(JOIN, INNER JOIN)은 결합 조건이 일치하지 않는 레코드는 표시하지 않는다. 일치하지 않는 레코드를 표시하려면 외부 조인(외부 결합)을 사용해서 한쪽 테이블의 모든 레코드를 표시할 수 있다.
LEFT JOIN은 왼쪽 테이블(left_tbl)의 결합 키(id)와 일치하는 오른쪽 테이블(right_tbl)의 컬럼 값을 NULL로 사용해서 모든 레코드를 표시한다.
SELECT left_tbl.*
FROM left_tbl LEFT JOIN right_tbl ON left_tbl.id = right_tbl.id
WHERE right_tbl.id IS NULL;
RIGHT JOIN은 반대로 오른쪽 테이블(right_tbl)의 모든 레코드를 표시한다. 포터블한 코드를 위해서 LEFT JOIN이 권장된다. 그리고 LEFT JOIN과 RIGHT JOIN을 같이 사용하면 문제가 될 수 있다.
'개발' 카테고리의 다른 글
VC++ 2017에서 개발한 COM DLL 등록 문제 (0) | 2018.11.29 |
---|---|
[MySQL] 서브 쿼리(하위 질의) (0) | 2018.08.22 |
[MySQL] 추출 결과 합치기(UNION) (0) | 2018.08.01 |
[MySQL] 논리 연산자 우선 순위 (0) | 2018.08.01 |
Microsoft Azure에서 PHPMailer SSL, TLS 인증 오류 해결 (0) | 2017.12.18 |
댓글