TIL101. SQL JOIN & UNION

Jaeyeon·2021년 5월 11일
0

INNER JOIN

교집합을 뜻하며

SELECT * FROM users INNER JOIN orders ON users.id=orders.userid

users 테이블과 orders 테이블을 JOIN한다.
대신 users 테이블의 id 값과 orders테이블 안에 userid가 같다면

OUTER JOIN

LEFT JOIN

INNER JOIN은 둘중에 하나라도 값의 교집합이 없을 시 행이 만들어지지 않지만
LEFT JOIN은 교집합이 아니더라도 행이 추가되며 NULL값으로 만들어진다.

SELECT * FROM users LEFT JOIN orders ON users.id= orders.userid

왼쪽에 있는 테이블의 데이터들을 기준으로 JOIN한다.

RIGHT JOIN

오른쪽에 있는 테이블의 데이터들을 기준으로 JOIN한다.

주로 LEFT JOIN을 많이 사용한다.
사용법 역시 LEFT JOIN과 똑같다.

UNION - 위아래로 데이터 붙히기

JOIN은 열 붙히기였다면 UNION은 행 붙히기 라고 생각하면된다!

UNION = UNION DISTINCT 와 똑같은 뜻이고
UNION ALL은 중복된 데이터까지 다 보여준다.

SELECT * FROM products WHERE price <= 5
UNION
SELECT * FROM products WHERE price >= 20

FULL OUTER JOIN을 사용하고 싶을 때 UNION을 사용한다.

SELECT customers.id, customers.name FROM customers LEFT JOIN orders ON customers.id = orders.customerid
UNION
SELECT customers.id, customers.name FROM customers RIGHT JOIN orders ON customers.id = orders.customerid;

profile
생각하는 개발자 되기

0개의 댓글

관련 채용 정보