Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.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_Sql_Subquery - Fatal编程技术网

在子查询中使用别名的MySQL

在子查询中使用别名的MySQL,mysql,sql,subquery,Mysql,Sql,Subquery,进行此查询: SELECT gs.PAGE, gs.ID, gs.CATALOGID FROM pages gs WHERE gs.ID = 404 OR gs.ID = (SELECT gs2.ID FROM pages gs2 WHERE gs2.CATALOGID = gs.CATALOGID AND gs2.PAGE = gs.PAGE + 1); 你应该给我: PAGE | ID

进行此查询:

SELECT
  gs.PAGE,
  gs.ID,
  gs.CATALOGID
FROM pages gs
WHERE gs.ID = 404
     OR gs.ID = (SELECT
           gs2.ID
         FROM pages gs2
         WHERE gs2.CATALOGID = gs.CATALOGID
             AND gs2.PAGE = gs.PAGE + 1);
你应该给我:

PAGE | ID  | CATALOGID
2    | 404 | 7
3    | 403 | 7
但它只返回ID为404的页面。 问题似乎出在那里的别名上

我得到了一个页面的ID,并且需要得到正确的页面,添加到pageno+1

有什么问题吗

编辑:

样本数据:

PAGE ID    CATALOGID
1    291    7
2    404    7
3    403    7
4    450    7
5    455    7
试试这个:

SELECT 
  gs.PAGE, 
  gs.ID, 
  gs.CATALOGID
FROM pages gs 
WHERE gs.ID    = 404 
   OR gs.PAGE = ( SELECT PAGE + 1
                  FROM pages x 
                  where x.id = 404 
                  and gs.CATALOGID = x.CATALOGID); 
试试这个:

SELECT 
  gs.PAGE, 
  gs.ID, 
  gs.CATALOGID
FROM pages gs 
WHERE gs.ID    = 404 
   OR gs.PAGE = ( SELECT PAGE + 1
                  FROM pages x 
                  where x.id = 404 
                  and gs.CATALOGID = x.CATALOGID); 

输出

PAGE    ID  CATALOGID
----------------------
2       404     7
3       403     7

输出

PAGE    ID  CATALOGID
----------------------
2       404     7
3       403     7

您想在其中做什么?我不明白您的查询应该完成什么。您想在其中做什么?我不明白您的查询应该完成什么。如果缺少第+1页或从表中删除了第+1页,这将不会执行什么操作wnats@raheelshan,缺失是什么意思?如果缺失,则返回正确的数据,即仅404行。这仅适用于在gs.ID上添加一个DISTINCT。你能确认吗?@frgtv10,它应该在没有distinct的情况下工作,检查我的sql演示链接不知道为什么,但现在它工作了。你能解释一下,为什么手动gs.PAGE=3也会将其他目录中的页面返回给我?子查询只返回页面+1?Hmmm?如果第+1页丢失或从表中删除,这将不起作用wnats@raheelshan,缺失是什么意思?如果缺失,则返回正确的数据,即仅404行。这仅适用于在gs.ID上添加不同的。你能确认吗?@frgtv10,它应该在没有distinct的情况下工作,检查我的sql演示链接不知道为什么,但现在它工作了。你能解释一下,为什么手动gs.PAGE=3也会将其他目录中的页面返回给我?子查询只返回页面+1?嗯?@frgtv10,我的答案完全一样,唯一的区别是我在里面做+1subquery@frgtv10,我的答案完全相同,唯一的区别是我在子查询中执行+1