데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 연관관계가 있는
결과값을 조회할 때 사용되는데, 보통 SELECT
문과 함께 사용된다.
JOIN
의 종류 = INNER JOIN
LEFT JOIN
RIGHT JOIN
PULL JOIN
ON
절과 함께 사용되며, ON
의 조건을 만족하는 데이터만 가져온다.
표준 SQL과는 달리 MySQL에서는 JOIN
, INNER JOIN
, CROSS JOIN
이 모두 같은 의미로 사용된다.
INNER JOIN 문법 예시
SELECT * FROM A_TABLE INNER JOIN B_TABLE ON 조건 WHERE 조건
첫 번째 테이블을 기준으로 두 번째 테이블을 조합한다.
ON
의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 필드 값은 그대로 가져오고
두 번째 테이블의 필드 값은 모두 NULL
로 표시된다.
LEFT JOIN 문법 예시
SELECT * FROM A_TABLE LEFT JOIN 두번째테이블이름 ON 조건 WHERE 조건
LEFT JOIN
과 반대로 두 번째 테이블을 기준으로 첫 번째 테이블을 조합한다.
ON
의 조건을 만족하지 않는 경우에는 두 번째 테이블의 필드 값은 그대로 가져오고
첫 번째 테이블의 필드 값은 모두 NULL
로 표시된다.
LEFT JOIN 문법 예시
SELECT * FROM A_TABLE RIGHT JOIN B_TABLE ON 조건 WHERE 조건
MySQL에서는 FULL JOIN
을 지원하지 않는다.
LEFT JOIN
, RIGHT JOIN
을 함께 사용하여 같은 결과를 도출할 수는 있다.
FUlL JOINLEFT JOIN + RIGHT JOIN 문법 예시SELECT * FROM A_TABLE LEFT JOIN B_TABLE ON 조건 UNION SELECT * FROM A_TABLE RIGHT JOIN B_TABLE ON 조건
중복되지 않은 유일한 값을 추출하는 경우 or 중복되는 모든 값까지 추출하는 경우에 쓰인다.
SELECT *
FROM A_TABLE
LEFT JOIN B_TABLE
UNION
SELECT *
FROM A_TABLE
RIGHT JOIN B_TABLE
SELECT *
FROM A_TABLE
LEFT JOIN B_TABLE
UNION ALL
SELECT *
FROM A_TABLE
RIGHT JOIN B_TABLE