JOIN
ㅡ JOIN은 DB내 여러 테이블의 데이터를 조합하여 하나의 테이블처럼 표현해준다.
* SELECT문과 함께 주로 사용됨
1. INNER JOIN
ON절과 함께 사용되며 ON절의 조건에 부합하는 데이터만 가져온다.
SELECT * FROM Reservation3 INNER JOIN Room ON Reservation3.roomNumber = Room.roomNumber;
두 테이블의 roomNumber 값이 같은 데이터 출력
SELECT * FROM Reservation3, Room WHERE Reservation3.roomNumber = Room.roomNumber;
MySQL에선 INNER JOIN 대신 ,(쉼표) ON 대신 WHERE도 사용 가능
★ 두 테이블을 사용하다보니 헷갈리는 부분이 생길 수도 있으니 별칭을 사용하면 편할 수도 있다.
SELECT RV.id, RV.name, RV.reservationDate, RV.note, RM.roomNumber, RM.roomSize, RM.roomName
2. LEFT JOIN
첫 번째 테이블을 기준으로 두 번째 테이블을 조합하는 JOIN
SELECT * FROM Reservation3 AS RV LEFT JOIN Room AS RM ON RV.roomNumber = RM.roomNumber;
3. RIGHT JOIN
LEFT JOIN과는 반대로 두 번째 테이블을 기준으로, 첫 번째 테이블을 조합
SELECT * FROM Reservation3 AS RV RIGHT JOIN Room AS RM ON RV.roomNumber = RM.roomNumber;
서브쿼리 ( subquery )
ㅡ 다른 쿼리 내부에 포함되어 있는 SELECT문을 의미
ㅡ 서브쿼리를 포함하는 쿼리를 외부쿼리, 서브쿼리를 내부쿼리라고도 한다.
ㅡ 괄호로 감싸져있어야 한다.
ㅡ 테이블의 검색 결과를 조건으로 사용
SELECT * FROM Reservation3
WHERE roomNumber = (
SELECT roomNumber
FROM Room
WHERE roomNumber = 2902
);
WHERE문에 쿼리로 조건을 덧붙였다.
* FROM에도 서브쿼리 사용 가능
특징
ㅡ 쿼리를 구조화시키므로, 쿼리를 명확히 구분할 수 있게 해준다.
ㅡ 복잡한 JOIN같은 동작을 수행할 수 있는 또 다른 방법 제공 / 가독성 ↑
'MySQL' 카테고리의 다른 글
View (0) | 2023.01.25 |
---|---|
Primary Key,(기본 키) Foreign Key(참조 키, 외래 키) (0) | 2023.01.24 |
MySQL 연산 (0) | 2023.01.20 |
MySQL 데이터 타입 (1) | 2023.01.20 |
MySQL 구문 [삽입, 수정, 선택, 중복 제거, 정렬, 별칭] (0) | 2023.01.19 |
댓글