MySql Query返回每张专辑中的照片数量

时间:2012-12-10 05:01:37

标签: mysql sql foreign-keys primary-key

我的表格设置如下,我需要做的就是调查我的照片表格。

我将PhotoID作为主键,GalleryID作为Gallery的外键。如何计算每个多个GalleryID的唯一PhotoID的数量。

可以说有可能重复GalleryID,因为图库中有很多照片。所以我只需要与该GalleryID相关联的唯一PhotoID的数量。

可以在一个查询中完成吗?

3 个答案:

答案 0 :(得分:0)

通常的方法是使用JOIN和GROUP BY子句,如下所示:

SELECT `Gallery`.`GalleryID`, COUNT(`Photos`.`PhotoID`) AS `NumOfPhotos` FROM `Gallery`
LEFT JOIN `Photos` ON `Gallery`.`GalleryID` = `Photos`.`GalleryID`
GROUP BY `Gallery`.`GalleryID`;

这将计算按图库ID分组的Photos.PhotoID条目数。

在这种情况下,你可以在没有JOIN的情况下进行查询,只需查询Photos表,但如果你想要的不仅仅是gallery表中的GalleryID,你需要加入。

答案 1 :(得分:0)

使用以下sql

select count(photoid) as noOfPhotos from photos group by galleryid;

使用galleryid上的位置获取特定画廊的结果

答案 2 :(得分:0)

使用此:

SELECT GalleryID, count(PhotoID)
FROM Photos
GROUP BY GalleryID;