SQL:从连接表中查找总计

时间:2014-10-13 11:08:51

标签: mysql sql

好的,我在MySQL中有两个表,photosviews。每次查看照片时,都会在views中创建一个新行。

我希望SQL返回一张照片列表,其中包含每张照片的总观看次数。

我一直在尝试这个查询,但结果只给了我一张照片。

select photos.id, photos.loc, count(views.id) as views
from photos
left outer join views on views.id=photos.id

有人可以向我解释我做错了吗?

感谢。

3 个答案:

答案 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),())