Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于行号的MySQL连接表本身不返回任何数据_Mysql_Self Join - Fatal编程技术网

基于行号的MySQL连接表本身不返回任何数据

基于行号的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

我有一个logs表,其中有一个ID列,我想执行以下操作:

  • 选择ID和行号
  • 根据行号将表联接到自身
我的目标是得到一个特定的行以及它前面的行。下面的SQL查询实际上不返回任何内容。好像它完全忘记了行号。在ID上加入可以很好地返回

MySQL是否需要做些什么来支持这种操作

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;