我的表格设置如下,我需要做的就是调查我的照片表格。
我将PhotoID作为主键,GalleryID作为Gallery的外键。如何计算每个多个GalleryID的唯一PhotoID的数量。
可以说有可能重复GalleryID,因为图库中有很多照片。所以我只需要与该GalleryID相关联的唯一PhotoID的数量。
可以在一个查询中完成吗?
答案 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;