- INNER JOIN은 두 테이블 간에 일치하는 행만 반환
SELECT orders.order_id, customers.customer_name
FROM orders
INNER JOIN customers ON orders.customer_id = customers.customer_id;
2. LEFT JOIN
- LEFT JOIN: 왼쪽 테이블의 모든 행을 반환하고, 오른쪽 테이블과 일치하는 행이 있는 경우에는 일치하는 행도 반환
SELECT customers.customer_name, orders.order_id
FROM customers
LEFT JOIN orders ON customers.customer_id = orders.customer_id;
3. RIGHT JOIN
- RIGHT JOIN: 오른쪽 테이블의 모든 행을 반환하고, 왼쪽 테이블과 일치하는 행이 있는 경우에는 일치하는 행도 반환
SELECT customers.customer_name, orders.order_id
FROM customers
RIGHT JOIN orders ON customers.customer_id = orders.customer_id;
4. FULL OUTER JOIN
- FULL OUTER JOIN: 양쪽 테이블의 모든 행을 반환하며, 일치하지 않는 행에는 NULL 값을 채움
- FULL OUTER JOIN은 테이블 간의 모든 데이터를 비교하는 데 사용
SELECT customers.customer_name, orders.order_id
FROM customers
FULL OUTER JOIN orders ON customers.customer_id = orders.customer_id;
5. SELF JOIN
- SELF JOIN: 동일한 테이블을 연결할 때 사용
- 예시: 조직 구조를 나타내는 테이블에서 부모와 자식 관계를 찾는 경우 SELF JOIN을 사용
SELECT e1.employee_name, e2.employee_name AS manager_name
FROM employees e1
INNER JOIN employees e2 ON e1.manager_id = e2.employee_id;