[SQL] 4-1 JOIN (INNER, LEFT, RIGHT)
여러 테이블의 정보를 한 번에 조회할 수 없을까?
데이터베이스 내의 여러 테이블을 하나의 테이블이나 결과 집합으로 표현하기 위해서 사용하는 것이 JOIN
이다.
표준 SQL에서는 레코드를 조합하는 방식에 따라 JOIN을 다음과 같이 구분한다.
-
INNER JOIN
-
LEFT JOIN
-
RIGHT JOIN
INNER JOIN
INNER JOIN은 ON 절과 함께 사용되며, ON 절의 조건을 만족하는 데이터만을 가져온다.
SELECT 필드이름
FROM 테이블이름
[INNER] JOIN 두번째테이블이름
ON 조건
-
rental 테이블과 user 테이블의 정보 중 user_id가 같은 것끼리 연결
SELECT * FROM rental [INNER] JOIN customer ON customer.id = rental.user_id;
customer 테이블 id name email 1 chanhwan choich@shimlog.com 2 haesol sunsol@shimlog.com 3 jaewoon jaejae@shimlog.com rental 테이블 rental_id user_id book_id 1 1 1000 2 1 1001 3 3 1004 customer, rental join 테이블
rental_id name email 1 chanhwan choich@shimlog.com 2 Chanhwan choich@shimlog.com 3 Jaewoon jaejae@shimlog.com
LEFT JOIN
SELECT 필드이름
FROM 테이블이름
LEFT JOIN 두번째테이블이름
ON 조건
-
rental 테이블과 user 테이블의 정보 중 user_id가 같은 것끼리 연결
SELECT * FROM rental LEFT JOIN customer ON customer.id = rental.user_id;
customer 테이블 id name email 1 chanhwan choich@shimlog.com 2 haesol sunsol@shimlog.com 3 jaewoon jaejae@shimlog.com rental 테이블 rental_id user_id book_id 1 1 1000 2 1 1001 3 3 1004 customer, rental join 테이블
rental_id name email rental_id Book_id 1 chanhwan choich@shimlog.com 1 1000 2 chanhwan choich@shimlog.com 2 1001 2 haesol haesol@shimlog.com null null 3 jaewoon jaejae@shimlog.com 3 1004
RIGHT JOIN
INNER JOIN은 ON 절과 함께 사용되며, ON 절의 조건을 만족하는 데이터만을 가져온다.
SELECT 필드이름
FROM 테이블이름
RIGHT JOIN 두번째테이블이름
ON 조건
-
rental 테이블과 user 테이블의 정보 중 user_id가 같은 것끼리 연결
SELECT * FROM rental RIGHT JOIN customer ON customer.id = rental.user_id;
customer 테이블 id name email 1 chanhwan choich@shimlog.com 2 haesol sunsol@shimlog.com 3 jaewoon jaejae@shimlog.com rental 테이블 rental_id user_id book_id 1 1 1000 2 1 1001 3 4 1004 customer, rental join 테이블
id name email rental_id book_id 1 chanhwan choich@shimlog.com 1 1000 1 chanhwan choich@shimlog.com 2 1001 null null null 4 1004
댓글남기기