0

我有一张照片表,每个专辑 ID 允许多行:照片(照片 ID、照片、标题、专辑 ID)。专辑 (albumID,albumTitle)

我想要一个albumTitle 列表和该albumID 的一张照片。照片表中有多个照片对应一个专辑 ID。

你能提供一个 sql 语句来为每个相册 id 选择一张照片吗?

提前致谢!阿维

4

3 回答 3

0
SELECT AlbumID, MIN(PhotoID)
FROM PHOTOS
GROUP BY AlbumID
于 2013-07-12T17:43:00.780 回答
0

这将仅返回每个专辑 ID 的每个实例中的 1 个和一张照片

SELECT DISTINCT `albumID `, `photo` FROM `Photos`;

然后你可以:

SELECT 
  DISTINCT `albumID `, `photo`
FROM 
  `Photos` 
INNER JOIN
  `Albums`
  ON `Albums.albumID` = `Photos.albumID`
   AND `Albums.albumTitle` = `albumTitle`
于 2013-07-12T17:48:41.893 回答
-1

这是使用以下方法的一种方法Max(photoId)

Select a.albumId, a.albumTitle, p.photoId, p.photo, p.caption
From Albums a
    Inner Join Photos p On a.albumId = p.albumId
    Inner Join (
        Select Max(photoId) maxPhotoId, albumId
        From Photos
        Group By albumId
    ) t On p.photoId = t.maxPhotoId And a.albumId = t.albumId
于 2013-07-12T17:41:20.010 回答