gpt4 book ai didi

mysql - 当与其他列一起选择 SUM 时,不会返回任何行

转载 作者:行者123 更新时间:2023-11-29 16:07:47 26 4
gpt4 key购买 nike

嘿,我想在同一个 SELECT 中获取一个表的一些行和另一个表的行的 SUM 。这是我的代码:

SELECT DISTINCT a.*, u.username, coalesce(SUM(v.value), 0) AS nbrVotes
FROM class_not_found.answers a, class_not_found.users u, class_not_found.votes v
WHERE a.question_id = :questionId
AND a.user_id = u.user_id
AND v.answer_id = a.answer_id
GROUP BY answer_id

因此,当行具有答案的 id 时,我想对“投票”表的行值进行求和...当我对答案进行投票时,它就可以工作...但是当没有对答案进行投票时。 ..我的返回中没有任何行,但我想要“0”...我能做些什么 ?

当某些行包含答案的 ID 时: https://i.imgur.com/NGHx3bO.png

其中没有包含答案 ID 的行: https://i.imgur.com/eTHN0TU.png

感谢您的帮助。

最佳答案

您需要使用 LEFT JOINv,以便在答案没有投票时返回行。使用显式 JOIN 重写查询(首选方式):

SELECT DISTINCT a.*, u.username, coalesce(SUM(v.value), 0) AS nbrVotes
FROM class_not_found.answers a
JOIN class_not_found.users u ON u.user_id = a.user_id
LEFT JOIN class_not_found.votes v ON v.answer_id = a.answer_id
WHERE a.question_id = :questionId
GROUP BY a.answer_id

关于mysql - 当与其他列一起选择 SUM 时,不会返回任何行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55565307/

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