gpt4 book ai didi

mysql - 分组连接查询没有返回结果时如何显示零

转载 作者:行者123 更新时间:2023-11-30 01:26:09 25 4
gpt4 key购买 nike

我正在尝试压缩数量查询我的 (php) mysql 数据库和我遇到以下问题:

对于最近 10 条发布的评论,我显示了平均评论数评级以及是否有与该评论相关的图像

MySQL 是:

SELECT 
obj_images.fk_obj_id AS has_images,
AVG(obj_rating) AS rating
/*other joined tables with obj_comments omitted for clarity ...*/
FROM obj_comments
INNER JOIN obj_images
ON obj_comments.fk_obj_id=obj_images.fk_obj_id
GROUP BY obj_comments.fk_obj_id
ORDER BY comment_id DESC
LIMIT 10

即使没有与评论相关的图像,has_images 仍然返回一个值,理想情况下,当没有与该图像关联的图像时,我希望返回零评论和 1(当有与之关联的图像时)

我错过了什么?

感谢您的任何提示

最佳答案

使用外部联接和 IFNULL() 而不是内部联接。

SELECT 
AVG(c.obj_rating) AS avg_rating
IFNULL(i.fk_obj_id, 0) AS has_images,
/* ... */
FROM
obj_comments c
LEFT JOIN obj_images i ON c.fk_obj_id = i.fk_obj_id
GROUP BY
c.fk_obj_id
ORDER BY
c.comment_id DESC
LIMIT 10

而且我认为声明表别名是个好主意。

关于mysql - 分组连接查询没有返回结果时如何显示零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17974003/

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