2012-07-19 54 views
0

MySQL的发言中,我有3个表:想不通这将返回所需的结果

  • 问题
  • 解答
  • qa_assoc其站立question id<->answer id关系

我是什么试图做的事情如下:选择所有问题,如果有任何问题也回答了选择答案。

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

回答

3

你不能WHERE一个,如果你想行,而不一个,它移动到ON部分

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=? 
+0

就像一个BOSSS !!!! ! THX MAAAN! – heron 2012-07-19 08:44:26