我有一张照片表,每个专辑 ID 允许多行:照片(照片 ID、照片、标题、专辑 ID)。专辑 (albumID,albumTitle)
我想要一个albumTitle 列表和该albumID 的一张照片。照片表中有多个照片对应一个专辑 ID。
你能提供一个 sql 语句来为每个相册 id 选择一张照片吗?
提前致谢!阿维
我有一张照片表,每个专辑 ID 允许多行:照片(照片 ID、照片、标题、专辑 ID)。专辑 (albumID,albumTitle)
我想要一个albumTitle 列表和该albumID 的一张照片。照片表中有多个照片对应一个专辑 ID。
你能提供一个 sql 语句来为每个相册 id 选择一张照片吗?
提前致谢!阿维
SELECT AlbumID, MIN(PhotoID)
FROM PHOTOS
GROUP BY AlbumID
这将仅返回每个专辑 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`
这是使用以下方法的一种方法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