gpt4 book ai didi

sql - MySQL COUNT 无法统计

转载 作者:可可西里 更新时间:2023-11-01 08:08:12 25 4
gpt4 key购买 nike

嗯,可以,但我不能查询;)

这是我的查询:

SELECT code.id AS codeid, code.title AS codetitle, code.summary AS codesummary, code.author AS codeauthor, code.date, code.challengeid, ratingItems.*, FORMAT((ratingItems.totalPoints / ratingItems.totalVotes), 1) AS rating, code_tags.*, tags.*, users.firstname AS authorname, users.id AS authorid, GROUP_CONCAT(tags.tag SEPARATOR ', ') AS taggroup,
COUNT(DISTINCT comments.codeid) AS commentcount
FROM (code)
JOIN code_tags ON code_tags.code_id = code.id
JOIN tags ON tags.id = code_tags.tag_id
JOIN users ON users.id = code.author
LEFT JOIN comments ON comments.codeid = code.id
LEFT JOIN ratingItems ON uniqueName = code.id
WHERE `code`.`approved` = 1
GROUP BY code_id
ORDER BY date desc
LIMIT 15

重要的是第二行——我缩进的那一行。我要求它计算特定帖子的评论数量,但它没有返回正确的数字。例如,带有两条评论的内容将返回“1”。由两位不同作者发表的 8 条评论仍将返回“1”...

有什么想法吗?

谢谢!

jack

编辑: 忘了说了。当我删除 DISTINCT 部分时,两位作者的 8 条评论返回“28”。抱歉,我不是 MySQL 专家,也不太明白为什么它会返回 :(

最佳答案

您按 code.id 分组,并在每个组中计数 (DISTINCT comments.codeid),但是 comments.codeid = code.id 如 JOIN 中所定义,这就是为什么你总是得到 1。

您需要根据评论的其他字段来计数...如果有主代理键,这就是 COUNT(comments.commentid) 的方法。

此外,如果已知每个组中的评论都是不同的,那么简单的 COUNT(*) 应该可以工作。

关于sql - MySQL COUNT 无法统计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3646032/

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