JOIN이란 데이터베이스 내의 여러 테이블에서 가져온 레코드를 조합하여 하나의 테이블이나 결과 집합으로 표현해주는 연산
- JOIN = INNER JOIN = CROSS JOIN
ON 절의 조건을 만족하는 데이터만을 가져온다.
ON 절에서는 WHERE 절에서 사용할 수 있는 모든 조건을 사용할 수 있다.
SELECT * FROM Reservation INNER JOIN Customer ON Reservation.Name = Customer.Name;
SELECT * FROM Reservation JOIN Customer ON Reservation.Name = Customer.Name
SELECT * FROM Reservation, Customer WHERE Reservation.Name = Customer.Name;
SELECT * FROM Reservation AS r, Customer AS c WHERE r.Name = c.Name;
- LEFT JOIN
LEFT JOIN은 첫 번째 테이블을 기준으로, 두 번째 테이블을 조합하는 JOIN
ON 절의 조건을 만족하지 않는 경우에는 첫 번째 테이블의 필드 값은 그대로 가져온다.
하지만 해당 레코드의 두 번째 테이블의 필드 값은 모두 NULL로 표시한다.
SELECT * FROM Reservation LEFT JOIN Customer ON Reservation.Name = Customer.Name WHERE ReserveDate > '2016-02-01';
- RIGHT JOIN
RIGHT JOIN은 LEFT 조인과는 반대로 두 번째 테이블을 기준으로, 첫 번째 테이블을 조합하는 JOIN
ON 절의 조건을 만족하지 않는 경우에는 두 번째 테이블의 필드 값은 그대로 가져온다.
하지만 해당 레코드의 첫 번째 테이블의 필드 값은 모두 NULL로 표시한다.
SELECT * FROM Reservation RIGHT JOIN Customer ON Reservation.Name = Customer.Name;
'DataBase & Structured Query Language > MySQL' 카테고리의 다른 글
[MySQL] GROUP BY, HAVING (0) | 2021.05.28 |
---|---|
[MySQL] UNION (0) | 2021.05.28 |