sql (3) JOIN
이 포스팅 내용은 얄팍한 코딩사전
강좌를 수강하며 학습한 내용과 추가로 공부한 내용을 정리한 포스팅입니다.
조인
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도 반환함
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도 반환함
마지막 수정일시: 2022-12-13 14:28
댓글남기기