我得到以下表格:
pictures
------------------------------------
id
name
views
votes
------------------------------------
id
user_id
pic_id
我想从一个查询中获得一个结果,该查询将为我提供每个图片的ID,图片的视图以及表votes
中特定pic_id的总票数
例:
pictures.id,pictures.views,总票数
1 ------------ 78 ------------------ 123
2 ------------ 23 ------------------- 69
等等...
我试过的代码:
SELECT `pictures`.`id`,`pictures`.`views`, COUNT(`votes`.`pic_id`) as votes
FROM `pictures`
JOIN `votes`
ON `pictures`.`id` = `votes`.`pic_id`
但这并没有给我我想要的重用。
您需要有GROUP BY
子句。
使用时LEFT JOIN
将显示表pictures
上的所有记录,表中有或没有匹配的记录votes
。
SELECT a.id, a.name, a.views,
COUNT(b.pic_id) TotalVotes
FROM pictures a
LEFT JOIN votes b
ON a.id = b.pic_id
GROUP BY a.id, a.name, a.views
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句