0

このクエリを持っている:

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

ただし、ID404のページのみが返されます。問題はそこのエイリアスにあるようです。

ページのIDを取得しましたが、適切なページも取得する必要があり、pageno+1に追加します。

どうしたの?

編集:

サンプルデータ:

PAGE ID    CATALOGID
1    291    7
2    404    7
3    403    7
4    450    7
5    455    7
4

3 に答える 3

2
SELECT *
FROM pages gs
WHERE gs.PAGE = 
(SELECT gs2.PAGE FROM pages gs2 
 WHERE gs2.CATALOGID=gs.CATALOGID AND gs2.ID = 404 ) + 1
OR gs.ID = 404;
于 2013-03-13T14:14:51.280 に答える
0
SELECT
  gs.PAGE,
  gs.ID,
  gs.CATALOGID
FROM pages gs
WHERE gs.PAGE >= (SELECT
         gs2.PAGE
           FROM pages gs2
           WHERE gs2.ID = 404)
LIMIT 2;

SQL FIDDLE DEMO

出力

PAGE    ID  CATALOGID
----------------------
2       404     7
3       403     7
于 2013-03-13T14:15:04.237 に答える