mysql - Select 语句返回单个表的内部链接行

标签 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 语句可能吗?它会采用什么形式?

最佳答案

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 t.ID=@pv;

关于mysql - Select 语句返回单个表的内部链接行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40199064/

相关文章:

mysql - 对于一列来说,排序永远需要花费大量时间

MySQL LEFT JOIN 只有最后一行非常慢

mysql - 在文本文件中存储批处理脚本的时间和错误

MYSQL - 在多表查询中从一列中选择两次

MySQL语句查找两个表中的数据

php - 具有 MySQL 远程访问权限的移动应用程序

SQL 来自联系人的最新照片(按联系人分组)

MySql MyISAM 插入缓慢

mysql - 针对其他表过滤具有多个内部联接的一个表

mysql错误: mysql_handledberror: Success