我有3张桌子:
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提前
答案 0 :(得分:3)
如果您想要没有 a 的行,将其移至WHERE
部分
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=?
答案 1 :(得分:0)
你尝试过内/外/左连接吗? 看看:http://dev.mysql.com/doc/refman/5.1/en/join.html