我的表是这样设置的,我需要做的就是调用我的照片表的查询。
我将 PhotoID 作为主键,GalleryID 作为 Gallery 的外键。如何计算每个多个 GalleryID 的唯一 PhotoID 的数量。
可以这么说,因为画廊中有很多照片,所以可能会有重复的 GalleryID。所以我只需要知道与该 GalleryID 关联的唯一 PhotoID 的数量。
可以在一个查询中完成吗?
我的表是这样设置的,我需要做的就是调用我的照片表的查询。
我将 PhotoID 作为主键,GalleryID 作为 Gallery 的外键。如何计算每个多个 GalleryID 的唯一 PhotoID 的数量。
可以这么说,因为画廊中有很多照片,所以可能会有重复的 GalleryID。所以我只需要知道与该 GalleryID 关联的唯一 PhotoID 的数量。
可以在一个查询中完成吗?
使用以下 sql
select count(photoid) as noOfPhotos from photos group by galleryid;
使用 galleryid 上的 where 获取特定画廊的结果
通常的方法是像这样使用 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 表,但如果您想要的不仅仅是图库表中的 GalleryID,则需要连接。
用这个:
SELECT GalleryID, count(PhotoID)
FROM Photos
GROUP BY GalleryID;