티끌모아 개발

가상 테이블 생성 및 3개 이상의 테이블 조인 본문

mssql

가상 테이블 생성 및 3개 이상의 테이블 조인

JKimKorea 2022. 2. 17. 09:59
--가상 테이블 생성 테이블 이름앞에 '#'을 붙여주면 쿼리문이 실행되고 해당 테이블은 자동 소멸된다.

create table #A( a1 varchar(2)
               , a2 varchar(3)
			   );
insert into #A values('a1','a');
insert into #A values('a2','b');
insert into #A values('a3','c');

create table #B( b1 varchar(2)
               , b2 varchar(3)
			   );
insert into #B values('b1','a');
insert into #B values('b2','b');
insert into #B values('b3','c');
insert into #B values('a1','be');
insert into #B values('a1','bf');

create table #C( c1 varchar(2)
               , c2 varchar(3)
			   , c3 varchar(3)
			   );
insert into #C values('c1','a','가');
insert into #C values('c2','b','나');
insert into #C values('c3','c','다');
insert into #C values('a1','ce','라');
insert into #C values('a1','be','마');
insert into #C values('a1','cg','바');
insert into #C values('d1','ch','사');
insert into #C values('a1','bf','아');

create table #D( d1 varchar(2)
               , d2 varchar(3)
			   )
insert into #D values('d1','a');
insert into #D values('d2','b');
insert into #D values('d3','c');
insert into #D values('a1','de');
insert into #D values('b1','df');
insert into #D values('c1','dg');

--조인쿼리문 작성 

select a1,a2,b1,b2,c1,c2,c3,d1,d2  
  from #A a
inner join #B b 
    on a.a1=b.b1
inner join #C c
    on b.b1=c.c1
   and b.b2=c.c2
left outer join #D d
    on b.b1=d.d1
   and c.c1=d.d1;

select * from #A;
select * from #B;
select * from #C;
select * from #D;

--실행 후 테이블이 바로 삭제되지는 않았음. 일정시간 후 삭제되는 문제로 테이블 데이타를 변경할 때
--drop하고 다시 데이터를 생성해야 했음.
drop table #C;

<결과>

순서대로 inner join이 된 값에서 left join 이 되어서 값이 조회되게 된다. 

'mssql' 카테고리의 다른 글

테이블정보 뽑는 쿼리  (0) 2022.05.03
mssql 데이터 다룰 때 주의 사항 및 사전 backup  (0) 2022.03.15
cursor 생성 및 사용방법.  (0) 2022.02.28