gpt4 book ai didi

sql - 坚持 SQL 连接查询

转载 作者:行者123 更新时间:2023-11-29 03:55:18 29 4
gpt4 key购买 nike

我正在制作一个问答网站,类似于此网站和 Yahoo answers。我有 3 个表 - smf_members、qa_questions 和 qa_answers。

在此查询中,我想从 qa_questions 中选择一些字段,从 smf_members 中选择一些字段,并在 ga_answers 中为 question_id 选择记录数。这样我就可以了解问题的一些基本信息、成员的一些基本信息以及答案的数量。

这是我到目前为止生成的查询,它几乎可以工作,但不会返回没有答案的问题(即,答案表中没有此 question_id 的记录)。

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

最佳答案

qa_answers 表上使用 LEFT OUTER JOIN:

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

关于sql - 坚持 SQL 连接查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3680545/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com