0

ステータスごとに2つの質問だけを選択することは可能ですか。mysqlがサブクエリの制限をサポートしていないことは知っていますが、このクエリの使用方法を理解できない回避策を見てきました。これは1つのクエリの問題ですか、それとも追加のクエリを使用する必要がありますか?ステータスごとに2行を選択しようとしています。

次のクエリがなくLIMIT 2ても機能しますが、結果が多すぎるため、制限する必要があります。

SELECT id FROM questions WHERE status_id = c.status_id LIMIT 2

クエリ:

  ...
    FROM questions q, users u, users lu, tags t, question_tags tt, connection c
   WHERE q.user_id = u.id
     AND tt.tag_id = t.id
     AND tt.question_id = q.id
     AND c.user_id = 100
     AND q.last_user = lu.id
     AND q.id IN (SELECT id FROM questions WHERE status_id = c.status_id LIMIT 2)
GROUP BY q.id
ORDER BY q.date DESC
4

1 に答える 1

0
...
    FROM questions q, users u, users lu, tags t, question_tags tt, connection c
   WHERE q.user_id = u.id
     AND tt.tag_id = t.id
     AND tt.question_id = q.id
     AND c.user_id = 100
     AND q.last_user = lu.id
     AND q.id IN (SELECT MAX(id) FROM questions WHERE status_id = c.status_id, 
                  SELECT MAX(id) FROM questions WHERE status_id = c.status_id AND id < 
                        (SELECT MAX(id) FROM questions WHERE status_id = c.status_id))
GROUP BY q.id
ORDER BY q.date DESC

醜い、私は知っていますが、それはうまくいくはずです。

于 2012-12-05T12:47:55.917 に答える