MySQL左连接不返回所有行

时间:2013-12-30 01:36:10

标签: mysql select left-join

我有两张桌子:“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(所有)行?

1 个答案:

答案 0 :(得分:3)

更改group by

GROUP BY `images`.`id`

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

SQLFiddle demo