1. LEFT JOIN
OUTER JOIN 중 하나이다.
실무에서 RIGHT JOIN보다는 LEFT JOIN을 많이 사용한다.
SELECT *
FROM TableA A
LEFT JOIN TableB B ON A.key = B.key
[LEFT JOIN의 특징]
> 첫 번째 테이블(TableA)을 기준으로 두 번째 테이블(TableB)을 매치시킨다.
> 첫 번째 테이블(TableA)에는 모든 레코드가 출력되고
두 번째 테이블(TableB) 레코드가 첫 번째 테이블(TableA)에 매치되는게 없으면 NULL이 출력된다.
> 첫 번째 테이블(TableA)의 한 개의 레코드에 여러 개의 두 번째 테이블(TableB) 레코드가 일치할 경우
첫 번째 레코드(TableA)를 여러 번 출력된다.
참고) LEFT JOIN 문제
2023.05.23 - [Test/SQL] - Customers Who Never Order (LEFT JOIN, IS NULL)
2. RIGHT JOIN
OUTER JOIN 중 하나이다.
실무에서 잘 안쓰인다. (RIGHT JOIN보다는 LEFT JOIN을 사용)
SELECT *
FROM TableA A
RIGHT JOIN TableB B ON A.key = B.key
[RIGHT JOIN의 특징]
> 두 번째 테이블(TableB)을 기준으로 첫 번째 테이블(TableA)을 매치시킨다.
> 두 번째 테이블(TableB)에는 모든 레코드가 출력되고
첫 번째 테이블(TableA) 레코드가 두 번째 테이블(TableB)에 매치되는게 없으면 NULL이 출력된다.
> 두 번째 테이블(TableB)의 한 개의 레코드에 여러 개의 첫 번째 테이블(TableA) 레코드가 일치할 경우
두 번째 테이블(TableB)를 여러 번 출력된다.
3. FULL OUTER JOIN
OUTER JOIN 중 하나이다.
MYSQL에서는 FULL OUTER JOIN을 지원하지 않는다.
실무에서는 잘 사용하지 않는다.
LEFT 조인한 테이블과 RIGHT조인한 테이블을 UNION 한 테이블과 같다.
SELECT *
FROM A LEFT JOIN B
UNION
SELECT *
FROM A RIGHT JOIN B;
참고) UNION
내용
2023.05.23 - [SQL/중급] - UNION, UNION ALL
문제
2023.05.19 - [Test/SQL] - Symmetric Pairs (INNER JOIN, GROUP BY, HAVING, ORDER BY, UNION)
'MYSQL' 카테고리의 다른 글
날짜 데이터에서 일부만 추출하기(YEAR, MONTH, DAY, HOUR, MINUTE, SECOND, DATE_FORMAT, DATE) (0) | 2023.05.28 |
---|---|
IF, CASE WHEN / THEN (0) | 2023.05.23 |
UNION, UNION ALL (0) | 2023.05.23 |
INNER JOIN, SELF JOIN (0) | 2023.05.20 |
MAX, MIN, SUM, AVG, COUNT 사용하기 (GROUP BY, HAVING) (0) | 2023.05.19 |