DBA

Inner Join 본문

[2] Database/MS-SQL

Inner Join

코볼 2022. 8. 8. 10:36
728x90
반응형
SMALL

if object_id('tempdb..#A') is not null

drop table #A

if object_id('tempdb..#B') is not null

drop table #B

 

 

create table #A

(

id int identity

, aCol1 varchar(10)

, aCol2 varchar(10)

, deleteYN tinyint

)

----10 Rows Insert

insert into #A values ('a011', 'a012', 0

insert into #A values ('a021', 'a022', 1)

insert into #A values ('a031', 'a032', 0)

insert into #A values ('a041', 'a042', 0)

insert into #A values ('a051', 'a052', 0)

insert into #A values ('a061', 'a062', 0)

insert into #A values ('a071', 'a072', 0)

insert into #A values ('a081', 'a082', 0)

insert into #A values ('a091', 'a092', 0)

insert into #A values ('a101', 'a102', 1)

Table : #A

 

create table #B

(

id int identity

, aID int

, bCol1 varchar(10)

, bCol2 varchar(10)

, deleteYN tinyint

)

----10 Rows Insert

insert into #B values (1, 'b011', 'b012', 0)

insert into #B values (16, 'b021', 'b022', 0)

insert into #B values (2, 'b031', 'b032', 0)

insert into #B values (16, 'b041', 'b042', 0)

insert into #B values (5, 'b051', 'b052', 1)

insert into #B values (1, 'b061', 'b062', 1)

insert into #B values (10, 'b071', 'b072', 0)

insert into #B values (10, 'b081', 'b082', 0)

insert into #B values (2, 'b091', 'b092', 0)

insert into #B values (13, 'b101', 'b102', 0)

Table : #B

 

 

---- inner join : #A Table의 id를 #B Table이 외래키(aID)로 가지고 있는 행만 조인되어 결과로 출력 된다. - 교집합

select * from #A as a

inner join #B as b on b.aID = a.id

inner join - 교집합

 

---- 위 결과 중에서도 #A TabledeleteYN 0인 것들만 다시 필터링 해서 결과로 출력 된다.

select * from #A as a

inner join #B as b on b.aID = a.id

where a.deleteYN = 0

inner join & where

 

---- #A TabledeleteYN0인 것들 중 #A Tableid#B Table외래키(aID)로 가지고 있는 행만 조인되어 결과로 출력 된다. - 위의 결과와 같다

select * from #A as a

inner join #B as b on b.aID = a.id and a.deleteYN = 0

inner join & on절 추가

728x90
반응형
LIST
Comments