교집합을 뜻하며
SELECT * FROM users INNER JOIN orders ON users.id=orders.userid
users 테이블과 orders 테이블을 JOIN한다.
대신 users 테이블의 id 값과 orders테이블 안에 userid가 같다면
INNER JOIN은 둘중에 하나라도 값의 교집합이 없을 시 행이 만들어지지 않지만
LEFT JOIN은 교집합이 아니더라도 행이 추가되며 NULL값으로 만들어진다.
SELECT * FROM users LEFT JOIN orders ON users.id= orders.userid
왼쪽에 있는 테이블의 데이터들을 기준으로 JOIN한다.
오른쪽에 있는 테이블의 데이터들을 기준으로 JOIN한다.
주로 LEFT JOIN을 많이 사용한다.
사용법 역시 LEFT JOIN과 똑같다.
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;