gpt4 book ai didi

Mysql从多个表中选择并得到零计数

转载 作者:行者123 更新时间:2023-11-29 07:40:48 25 4
gpt4 key购买 nike

我有一个带有 2 个表的简单数据库 --

问题与解答

两者都有一个 Questionid 字段,我正在尝试获取所有问题的列表以及所有答案的计数 - 问题是有些问题没有答案。

SELECT questions.*,COUNT(answers.questionid) AS num_answers 
FROM questions
LEFT JOIN answers
ON questions.questionid = answers.questionid

上面的 SQL 给出了所有有答案的问题的计数,但如果答案为零,则它不会出现在列表中。

有什么想法吗?

最佳答案

只需使用 count(*) :

SELECT COUNT(*) AS num_answers
FROM questions LEFT JOIN
answers
ON questions.questionid = answers.questionid

当您使用count(<column>)时name,您正在计算列中非 NULL 值的数量。通过使用第二个表中的列,您仅计算匹配项。

此外,您不需要 questions.* 。大多数 SQL 引擎都会为此返回错误。无论如何,该查询仅返回一行,因为它是一个没有 group by 的聚合查询。 .

编辑:

如果您想要每个问题,请使用 group by并使用 answers 中的列对匹配项进行计数:

SELECT questions.*, 
COUNT(answers.questionid) as num_answers
FROM questions LEFT JOIN
answers
ON questions.questionid = answers.questionid
GROUP BY questions.questionid

关于Mysql从多个表中选择并得到零计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29119232/

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