繁体   English   中英

MySQL左连接不返回所有行

[英]MySQL left join doesn't return all rows

我有两张桌子:“images”和“images_votes”。 这是一个评级系统,所以我需要计算投票和分数的总和

当我进行LEFT JOIN时,不会出现“images”中的所有行,只有那些有投票的行,还有一个。

这是查询:

SELECT `images`.`id` AS id, COUNT( images_votes.id_image ) AS votes, SUM( images_votes.val ) AS val
FROM (
`images`
)
LEFT JOIN `images_votes` ON `images`.`id` = `images_votes`.`id_image`
GROUP BY `images_votes`.`id_image`

这是完整的例子:

http://www.sqlfiddle.com/#!2/05526/1

我有5张图片,所以我希望结果会返回5行。 我只得到3:2的投票,还有一个。

为什么会这样?

如何获得5(所有)行?

改变group by

GROUP BY `images`.`id`

您希望按包含所有图像的表进行分组。

SQLFiddle演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM