0

私は3つのテーブルを持っています:

  • 質問
  • 答え
  • question id<->answer id関係を表す qa_assoc

私がやろうとしているのは次のとおりです。すべての質問を選択し、質問に回答がある場合は回答も選択します。

SELECT q.id, q.content, a.id, a.content, a.dt 
        FROM questions q 
        JOIN qa_assoc qaa ON qaa.qid=q.id
        JOIN answers a ON a.id=qaa.aid
        WHERE q.course_id=? AND q.lesson_id=? AND a.user_id=?

しかし、このSQLは答えのある質問のみを選択します。どうすれば自分のアイデアを実現できますか? 助言がありますか?thx事前に

4

2 に答える 2

3

のない行が必要な場合はを含めることはできません。パーツに移動しましWHEREON

SELECT q.id, q.content, a.id, a.content, a.dt 
FROM questions q 
LEFT JOIN qa_assoc qaa ON (qaa.qid=q.id)
LEFT JOIN answers a ON (a.id=qaa.aid  AND a.user_id=?)
WHERE q.course_id=? AND q.lesson_id=?
于 2012-07-19T08:42:22.817 に答える
0

内部/外部/左結合を試しましたか? 見てください:http://dev.mysql.com/doc/refman/5.1/en/join.html

于 2012-07-19T08:38:32.077 に答える