0

私のテーブルはこのように設定されています。私がする必要があるのは、写真テーブルへのクエリを呼び出すことだけです。

プライマリキーとしてPhotoIDを使用し、Galleryの外部キーとしてGalleryIDを使用しています。複数のGalleryIDごとに一意のPhotoIDの数をカウントするにはどうすればよいですか。

つまり、ギャラリーには多くの写真があるため、GalleryIDが重複している可能性があります。そのため、そのGalleryIDに関連付けられている一意のPhotoIDの数を指定する必要があります。

1つのクエリで実行できますか?

4

3 に答える 3

0

通常の方法は、次のようにJOIN句とGROUPBY句を使用することです。

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エントリの数がカウントされます。

この場合、Photosテーブルにクエリを実行するだけで、JOINなしでクエリを実行できますが、ギャラリーテーブルのGalleryID以外のものが必要な場合は、結合が必要です。

于 2012-12-10T05:13:10.167 に答える
0

次のSQLを使用します

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

galleryidのwhereを使用して、特定のギャラリーの結果を取得します

于 2012-12-10T05:14:09.457 に答える
0

これを使って:

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