MSSQL 2000 사용하는데요
TABLE 1 | TABLE 2
|
NAME | IndexID NAME FRIENDNAME
A | 1 A B
B | 2 A C
C | 3 B A
D | 4 B D
E | 5 C A
F | 6 C E
G | 7 D B
H | 8 D E
| 9 E C
| 10 E D
| 11 E F
| 12 F E
| 13 G H
| 14 H G
요렇게 테이블이 두개가 있습니다. Table1 에는 사람들의 이름들이고
Table2 에는 Table1 에 나온사람들의 친구관계가 있습니다.
A 는 B, C 와 친구이고
B 는 A, D 와 친구
C 는 A, E 와 친구
D 는 B, E 와 친구
E 는 C, F 와 친구
F 는 E 와 친구
G 와 H 는 둘이서만 친구...
A 가 친구들에게 한턱 쏜다며 친구인 B, C 에게 친구들 다 부르라고 합니다.
B 는 D 를 부르고
C 는 친구인 E 를 부릅니다.
D 는 친구인 E 를 부르는데 E 는 다른 친구인 C 에게 연락 받아서 이미 가고
있다고 합니다.
E 는 친구인 F 를 부릅니다. F 는 다른 친구가 없어 그냥 갑니다.
G, H 는 이들과 관계가 없기때문에 안갑니다.
이렇게 줄 닿은 사람들을 다 불러 오는 쿼리가 필요한데요.
쿼리를 해서 F 를 인풋했을때 이들의 관계의 연결의 연결을 거듭해서 A,B,C,D,E 가
다 나오게 하는 쿼리가 가능한가요? 고수님들 부탁드려요.
MSSQL 2000 사용입니다.
|