好的,我在MySQL中有两个表,photos
和views
。每次查看照片时,都会在views
中创建一个新行。
我希望SQL返回一张照片列表,其中包含每张照片的总观看次数。
我一直在尝试这个查询,但结果只给了我一张照片。
select photos.id, photos.loc, count(views.id) as views
from photos
left outer join views on views.id=photos.id
有人可以向我解释我做错了吗?
感谢。
答案 0 :(得分:1)
您需要count
视图和group by
照片:
SELECT photos.id, photos.loc, COUNT(*) AS total_views
FROM photos
LEFT OUTER JOIN views ON views.id = photos.id
GROUP BY photos.id, photos.loc
答案 1 :(得分:1)
应该是这样的
SELECT
photos.id,
photos.loc,
count(views.id) as viewCount
FROM
photos,
LEFT JOIN views ON views.id = photos.id (Not sure if it should be views.id or views.pid or something)
GROUP BY
photos.id
答案 2 :(得分:0)
SELECT photos.id,photos.loc,count(views.id) as views
FROM photos
LEFT JOIN views
ON
views.id=photos.id
GROUP BY GROUPING SETS(photos.id,photos.loc),())