SQL

SQL Parent Row 찾기!

초초초보 2010. 3. 29. 17:40


간단한 쿼리문..
1시간동안 해맸던.

---------------------------
간단한 테스트 테이블
---------------------------
create table Test
(
   child varchar(100),
   parent varchar(100),
   data varchar(100)
)

------------------------------------
테스트 데이터 : child 컬럼의 데이터는 null(최상위) 이거나 부모를 가지고 있다
------------------------------------

insert into Test values('1', null,'data1')
insert into Test values('2', '1','data2')
insert into Test values('3', '1','data3')
insert into Test values('4', '2','data4')
insert into Test values('5', '1','data5')
insert into Test values('6', '1','data6')
insert into Test values('7', '3','data7')
insert into Test values('8', '3','data8')
insert into Test values('9', '1','data9')
------------------------------------
셀프 조인을 통해(left join) 부모데이터와
자식 데이터를 나란히 위치 시킨다
------------------------------------
select t1.child , t1.parent, t1.data childData, t2.data parentData
from Test t1 left outer join
Test t2 on t1.parent = t2.child
------------------------------------
원래 결과
child   parent        data
1           NULL      data1
2           1           data2
3           1           data3
4           2           data4
5           1           data5
6           1           data6
7           3           data7
8           3           data8
9           1           data9

쿼리후 나온 결과
child    parent childData      parentData
1           NULL      data1           NULL
2           1           data2           data1
3           1           data3           data1
4           2           data4           data2
5           1           data5           data1
6           1           data6           data1
7           3           data7           data3
8           3           data8           data3
9           1           data9           data1