基于行号的MySQL连接表本身不返回任何数据
我有一个logs表,其中有一个ID列,我想执行以下操作:基于行号的MySQL连接表本身不返回任何数据,mysql,self-join,Mysql,Self Join,我有一个logs表,其中有一个ID列,我想执行以下操作: 选择ID和行号 根据行号将表联接到自身 我的目标是得到一个特定的行以及它前面的行。下面的SQL查询实际上不返回任何内容。好像它完全忘记了行号。在ID上加入可以很好地返回 MySQL是否需要做些什么来支持这种操作 select * from (select id, @rownum := @rownum + 1 as 'row' from logs, (select @rownum := 0) r order
- 选择ID和行号
- 根据行号将表联接到自身
select * from
(select id, @rownum := @rownum + 1 as 'row'
from logs, (select @rownum := 0) r order by id) a
join
(select id, @rownum := @rownum + 1 as 'row'
from logs, (select @rownum := 0) r order by id) b
on a.row = b.row;
在第二个查询中更改变量名,在两个查询中使用相同的变量可能会产生意外的结果
select * from
(select id, @rownum := @rownum + 1 as 'row'
from logs, (select @rownum := 0) r order by id) a
join
(select id, @rownum1 := @rownum1 + 1 as 'row1'
from logs, (select @rownum1 := 0) r order by id) b
on a.row = b.row1;