serendipity
Join 본문
728x90
JOIN , 조인이란 ?
: 둘 이상의 테이블을 연결해서 데이터를 검색하는 방법
People 테이블
PersonID | FirstName | LastName |
1 | Jaemin | Na |
2 | Yoona | Lim |
3 | Taehyung | Kim |
Address 테이블
AddressId | PersonID | Place |
5 | 2 | Suwon |
6 | 2 | Gangnam |
7 | 3 | Daejeon |
1) INNER JOIN
: 데이터의 교집합 , 공통적인 부분만 SELECT
SELECT p.personId, p.firstName, a.addressId, a.place
FROM Person AS p
INNER JOIN Address AS a ON p.personId = a.personId
OUTPUT)
PersonID | FirstName | AddressID | Place |
2 | Yoona | 5 | Suwon |
2 | Yoona | 6 | Gangnam |
2) LEFT JOIN
: 왼쪽 테이블을 중심으로 오른쪽의 테이블 매치
* 왼쪽은 무조건 표시하고, 매치되는 레코드가 오른쪽에 없으면 NULL을 표시한다.
SELECT p.personId, p.firstName, a.addressId, a.place
FROM Person AS p
LEFT JOIN Address AS a ON p.personId = a.personId
OUTPUT)
PersonID | FirstName | AddressID | Place |
1 | Jaemin | NULL | NULL |
2 | Yoona | 5 | Seoul |
2 | Yoona | 6 | Gangnam |
3 | Taehyung | 7 | Daejeon |
3) RIGHT JOIN
: 오른쪽 테이블을 중심으로 왼쪽의 테이블 매치
* 오른쪽은 무조건 표시하고, 매치되는 레코드가 왼쪽에 없으면 NULL을 표시한다.
SELECT a.addressId, a.place, p.personId, p.firstName
FROM Person AS p
RIGHT JOIN Address AS a ON p.personId = a.personId
OUTPUT)
AddressID | Place | PersonID | FirstName |
5 | Suwon | 2 | Yoona |
6 | Gangnam | 2 | Yoona |
7 | Daejeon | 3 | TaeHyung |
4) FULL OUTER JOIN
: 왼쪽 오른쪽 테이블 데이터를 모두 읽어 중복된 데이터를 삭제한 결과 , 합집합
SELECT p.personId, p.firstName , a.addressId
FROM Person AS p
FULL OUTER JOIN Address AS a ON p.personId = a.personId
728x90
'Study > SQL' 카테고리의 다른 글
Union (0) | 2021.07.07 |
---|---|
Group / Order by (0) | 2021.07.07 |
Comments