私は3つのテーブル - tblpollquestions、tblpollanswers、およびtblpollresponsesを持っています。mysqlの制限結合 - これを行うより効率的な方法はありますか?
ユーザーがまだ応答していないランダムな質問を、それぞれの回答で選択したいと考えています。
以下のSQLは、私が必要とするものを正確に返しますが、3つのSELECTが必要です。確かにより効率的な方法が必要でしょうか?
SELECT
poll.id,
poll.question,
a.answer
FROM tblpollquestions poll
INNER JOIN tblpollanswers a ON a.question_id = poll.id
INNER JOIN (
SELECT id FROM tblpollquestions WHERE id NOT IN(
SELECT question_id FROM tblpollresponses WHERE user_id = 1
) ORDER BY RAND() LIMIT 1
) as t ON t.id = poll.id
は私によく見えます。どのように実行されますか?説明計画は何を言っているのですか? – Randy