오늘도 개발

테이블 JOIN 방법(INNER JOIN, OUTER JOIN) 본문

웹 프로그래밍/DB

테이블 JOIN 방법(INNER JOIN, OUTER JOIN)

Sueeeeeee 2022. 10. 2. 23:07

0. 예시로 들 테이블

products, product_images, charges, product_charges

1.  INNER JOIN

두 테이블의 교집합을 조회한다.

예를 들어 product와 product_images 테이블을 조인하는 경우

이미지가 있는 product 1과 2만 보임. 3은 불러오지 않음.

SELECT * FROM products
JOIN product_images ON product_images.product_id = products.id;

 

2.  OUTER JOIN

두 테이블의 합집합을 조회한다.

 

LEFT JOIN

왼쪽 테이블의 모든 행을 조회한다.

예를 들어 product와 product_images 테이블을 조인하는 경우

product의 모든 행을 가져오기 때문에 이미지가 없는 product 3도 불러온다. 

SELECT * FROM products
LEFT JOIN product_images ON product_images.product_id = products.id;

 

RIGHT JOIN

오른쪽 테이블의 모든 행을 조회한다.

예를 들어 product_images와 products 테이블을 조인하는 경우

product_images의 모든 행을 가져온다. (이 예시에선 left join과 결과가 같다.)

SELECT * FROM products
RIGHT JOIN product_images ON product_images.product_id = products.id;

 

FULL OUTER JOIN

두 테이블을 다 가져온다.

단, mysql에서는 FULL OUTER JOIN이라는 키워드가 없다.

대신 left join과 right join을 union하여 같은 효과를 낼 수 있다.

SELECT * FROM products
LEFT JOIN product_images ON product_images.product_id = products.id
UNION
SELECT * FROM products
RIGHT JOIN product_images ON product_images.product_id = products.id

'웹 프로그래밍 > DB' 카테고리의 다른 글

LEFT JOIN 시 행 중복 문제 해결하기  (0) 2022.10.04
GROUP BY, 집계함수  (1) 2022.10.03
트랜잭션(Transaction)  (0) 2022.06.28
관계형 데이터베이스(Relational Database)  (0) 2022.06.27
SQL 기초  (0) 2022.03.30