최대 1 분 소요

이 포스팅 내용은 얄팍한 코딩사전 강좌를 수강하며 학습한 내용과 추가로 공부한 내용을 정리한 포스팅입니다.


조인

1. JOIN(INNER JOIN)

: 조인하는 테이블 양쪽 모두에 값이 있는 행을 반환함

SELECT * 
FROM Categories C
JOIN Products P 
  ON C.CategoryID = P.CategoryID; 

-> Categories 테이블에서 Products 테이블의 CategoryID와 같은 CategoryID와 같은 데이터 전체를 가져오기

  • FROM 다음 JOIN, ON이 옴
  • 양쪽 테이블에 모두 있는 컬럼의 경우 테이블을 특정해주지 않으면 ambiguous 오류가 남

2. LEFT/RIGHT JOIN

LEFT JOIN : LEFT JOIN하는 테이블에 데이터가 없더라도 기존 테이블에 있으면 데이터 출력

RIGHT JOIN : 기존 테이블에 데이터가 없더라도 RIGHT JOIN하는 테이블에 있으면 데이터 출력

SELECT 
  DISTINCT IFNULL(C.CustomerName, '----NO CUSTOMER----'),
  S.City, 
  IFNULL(S.SupplierName, '----NO SUPPLIER----')
FROM Customers C
LEFT JOIN Suppliers S
	ON C.City = S.City

-> LEFT JOIN이기 때문에 Customers에 데이터가 있으면 나옴. 따라서, Supplier가 없는 CustomerName도 반환함

image-20221213142718383

SELECT 
  DISTINCT IFNULL(C.CustomerName, '----NO CUSTOMER----'),
  S.City, 
  IFNULL(S.SupplierName, '----NO SUPPLIER----')
FROM Customers C
RIGHT JOIN Suppliers S
	ON C.City = S.City

-> RIGHT JOIN이기 때문에 Suppliers에 데이터가 있으면 나옴 -> 따라서, Customer가 없는 Supplier도 반환함

image-20221213142841377


마지막 수정일시: 2022-12-13 14:28

카테고리:

업데이트:

댓글남기기