1

このmysqlステートメントがありますが、サブクエリエラーでLIMITを受け取ります

SELECT  id
FROM    articles
WHERE  section=1 AND id NOT IN 
        (
        SELECT  id
        FROM    articles
        WHERE   is_top_story=1  ORDER BY timestamp DESC LIMIT 2
        )

section=1 で id-s が内部 (2 番目の) ステートメントにないテーブルからすべての id-s を選択したい

+--id--+section+-is_top_story-+--timestamp--+
|  54  |   1   |     1        |    130      |
|  70  |   2   |     0        |    129      |      
|  98  |   3   |     1        |    128      |
|  14  |   1   |     1        |    127      |
|  58  |   4   |     0        |    126      |
|  13  |   3   |     1        |    125      |
|  64  |   1   |     1        |    124      |
|  33  |   1   |     1        |    123      |

54 と 14 (内部ステートメントにある) のため、私の SQL は 64 と 33 (section=1 と is_top_story=1 を使用) を返す必要があります。

誰かが私にいくつかのコードを与えることができれば、私は非常に感謝しています

ありがとう

4

2 に答える 2

0

これがあなたの望みかどうかはわかりませんが、質問は少し混乱しています。同じテーブルに対してサブクエリを使用する理由がわかりません。とにかく、LIMIT は MSSQL の "TOP" と同じなので、LIMIT 2 は 2 つのレコードのみを返す必要があります。

これが望ましくない場合は、コメントしてください。回答を編集します。

SELECT  id
FROM    articles
WHERE  section=1 AND is_top_story != 1
ORDER BY timestamp DESC 
于 2012-05-07T14:02:09.420 に答える