选择语句以返回单个表的内部链接行

时间:2016-10-23 02:52:13

标签: mysql

-------------------------
|  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语句,给出上面的表返回一个类似于下面的结果集。

例如,一个(尚未完成的)查询,如:

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语句是否可行,需要采用什么形式?

1 个答案:

答案 0 :(得分:0)

要处理此查询,它应该是ID大于LINK。所以这里得到表 作为ID降序。 选择t.ID作为ID,@ pv:= t.LINK作为LINK from(选择ID,ID来自[ABOVE_TABLE]订单的LINK)t 加入 (选择@pv:=(从[ABOVE_TABLE]选择ID,其中NOM ='ALF'))tmp 其中t.ID = @ pv;