0

我的表是这样设置的,我需要做的就是调用我的照片表的查询。

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

可以这么说,因为画廊中有很多照片,所以可能会有重复的 GalleryID。所以我只需要知道与该 GalleryID 关联的唯一 PhotoID 的数量。

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

4

3 回答 3

0

使用以下 sql

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

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

于 2012-12-10T05:14:09.457 回答
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 表,但如果您想要的不仅仅是图库表中的 GalleryID,则需要连接。

于 2012-12-10T05:13:10.167 回答
0

用这个:

SELECT GalleryID, count(PhotoID)
FROM Photos
GROUP BY GalleryID;
于 2012-12-10T05:40:04.973 回答