Join 은 수학의 집합 개념을 생각하면 이해가 쉽습니다.
합집합(Full Join): 집합A와 집합B중 적어도 하나의 집합에 속하는 원소들의 모임.
교집합(Join) : A와 B 모두에 속하는 원소들의 모임.
차집합 : 집합A와 집합B중 집합A에 속하지 않은 원소
* ATable에 Key_ID 1~10 등록
* BTable에 Key_ID가 짝수인것만 등록
* 쿼리 확인용으로 BTable에 Key_ID 9 등록
Create Table ATable ( Key_ID int, Key_Nm Varchar(10));
go
Create Table BTable ( Key_ID int, Key_Nm Varchar(10));
go
Insert into ATable(Key_ID, Key_Nm) values(1, '1Nm');
Insert into ATable(Key_ID, Key_Nm) values(2, '2Nm');
Insert into ATable(Key_ID, Key_Nm) values(3, '3Nm');
Insert into ATable(Key_ID, Key_Nm) values(4, '4Nm');
Insert into ATable(Key_ID, Key_Nm) values(5, '5Nm');
Insert into ATable(Key_ID, Key_Nm) values(6, '6Nm');
Insert into ATable(Key_ID, Key_Nm) values(7, '7Nm');
Insert into ATable(Key_ID, Key_Nm) values(8, '8Nm');
Insert into BTable(Key_ID, Key_Nm) values(9, '8Nm');
Insert into BTable
select *
From ATable
where key_ID%2 = 0
정의 : A와 B 모두에 속하는 원소들의 모임.
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Inner Join BTable B
on A.Key_ID = B.Key_ID
-- 아래와 같이 inner Join 시 inner 는 생략가능
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Join BTable B
on A.Key_ID = B.Key_ID
정의 : 왼쪽 Table의 전체 Data 출력
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Left Outer Join BTable B
on A.Key_ID = B.Key_ID
-- Outer 생략가능
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Left Join BTable B
on A.Key_ID = B.Key_ID
정의 : 오른쪽 Table의 전체 Data 출력
-- Outer 생략가능
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Right Join BTable B
on A.Key_ID = B.Key_ID
정의 : ATable의 Data 와 BTable중 Data 중 ATable에만 있는 Data
-- 왼쪽에Table에만 있는 값
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Left Join BTable B
on A.Key_ID = B.Key_ID
Where B.Key_ID is null
-- 오른쪽Table에만 있는 값
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Right Join BTable B
on A.Key_ID = B.Key_ID
Where A.Key_ID is null
정의 : ATable 또는 BTable 에 있는 Data
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Full Outer Join BTable B
on A.Key_ID = B.Key_ID
내용 : 교집합을 제외한 나머지 Data 조회
Select A.Key_ID, A.Key_Nm, B.Key_ID, B.Key_Nm
From ATable A Full Join BTable B
on A.Key_ID = B.Key_ID
Where A.Key_ID is null or B.Key_ID is null
전체 소스 파일
Blog is powered by kakao / Designed by 미스터짱