본문 바로가기
MySQL

JOIN

by KDW999 2023. 1. 25.

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도 사용 가능

INNER JOIN의 개념

 

★ 두 테이블을 사용하다보니 헷갈리는 부분이 생길 수도 있으니 별칭을 사용하면 편할 수도 있다.

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

댓글