블로그 이미지
프로그램을 가장 훌륭하게 작성하는 방법은 상태가 변경되는 오브젝트들과 수학적인 값을 나타내는 오브젝트들의 조합으로 표현하는 것이다. -Kent Beck 초초초보

카테고리

Programming (184)
ASP.NET (9)
Silverlight (2)
Javascript (20)
C# (8)
java (25)
SQL (14)
Oracle (3)
MyBatis (3)
기타 (52)
개발방법론 (1)
trouble shooting (2)
Linux (5)
스칼라 (5)
html (2)
grails & gradle (3)
Spring (2)
rabbitmq (1)
(3)
spark (0)
docker (3)
Total
Today
Yesterday

달력

« » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

공지사항

최근에 올라온 글

SQL Parent Row 찾기!

SQL / 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




Posted by 초초초보
, |