我正在制作一个Q&A网站,类似于这个网站和雅虎的答案.我有3个表 - smf_members,qa_questions和qa_answers.
在此查询中,我想从qa_questions中选择一些字段,从smf_members中选择一些字段,在question_id中选择ga_answers中的记录数.这样我就可以获得关于问题的一些基本信息,关于成员的一些基本信息以及答案的数量.
这是我到目前为止生成的查询,它几乎可以工作,但不会返回没有答案的问题(即,此问题的答案表中没有记录).
SELECT qa_questions.question_id,
qa_questions.question_title,
qa_questions.question_content,
qa_questions.time_asked,
qa_questions.question_author,
qa_questions.votes,
qa_questions.views,
qa_questions.pretty_url,
smf_members.real_name,
smf_members.id_member,
COUNT(qa_answers.question_id) AS answers
FROM qa_questions,
qa_answers,
smf_members
WHERE qa_questions.deleted = 0
AND smf_members.id_member = qa_questions.question_author
AND qa_answers.question_id = qa_questions.question_id
ORDER BY qa_questions.time_asked DESC
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
LEFT OUTER JOIN在qa_answers桌子上使用:
SELECT q.question_id,
q.question_title,
q.question_content,
q.time_asked,
q.question_author,
q.votes,
q.views,
q.pretty_url,
m.real_name,
m.id_member,
COUNT(a.question_id) as answers
FROM qa_questions q
inner join smf_members m on m.id_member = q.question_author
left outer join qa_answers a on a.question_id = q.question_id
WHERE q.deleted = 0
ORDER BY q.time_asked DESC
LIMIT 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
138 次 |
| 最近记录: |