2016-10-23 4 views
0
------------------------- 
| ID | LINK | NOM | 
------------------------- 
| 05 | 00 | BOB | 
| 07 | 05 | SAM | 
| 08 | 05 | TIM | 
| 10 | 08 | ALF | 
| 13 | 05 | DOC | 
| 25 | 08 | JIM | 
| 26 | 07 | IAN | 
| 28 | 25 | LOU | 
------------------------- 

上記の表を指定すると、以下のような結果セットが返されます。SELECTステートメントを使用して1つのテーブルの内部リンクされた行を返す

例えば、(まだ不完全)クエリは次のように:

SELECT ID, NOM FROM ABOVE_TABLE WHERE NOM='ALF' 

、値が返される。

10, ALF 
08, TIM 
05, BOB 

をクエリに対し:

SELECT ID, NOM FROM ABOVE_TABLE WHERE NOM='LOU' 

、値が返される

28, LOU 
25, JIM 
08, TIM 
05, BOB 

と:

SELECT ID, NOM FROM ABOVE_TABLE WHERE NOM='JIM' 

は値を返します。

25, JIM 
08, TIM 
05, BOB 

し、最終的に:

SELECT ID, NOM FROM ABOVE_TABLE WHERE NOM='IAN' 

は値を返します。

26, IAN 
07, SAM 
05, BOB 

可能なSELECT文であり、それはどのような形をとるのでしょうか?

+0

これは再帰的なクエリが必要なようです。 –

答えて

0
To work this query it should be ID greater than LINK. SO here get table 
as ID descending order. 

select t.ID as ID, @pv:=t.LINK as LINK 
from (select ID,LINK from [ABOVE_TABLE] order by ID desc) t 
join 
(select @pv:=(select ID from [ABOVE_TABLE] WHERE NOM='ALF'))tmp 
where [email protected]; 
関連する問題