从Photos表中为每个AlbumID获取一行

时间:2013-07-12 17:37:14

标签: asp.net sql sql-server

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

我想要一张albumTitle列表和一张该albumID的照片。 照片表中有多张照片可用于单个albumID。

你能提供一个sql语句来为每个专辑ID选择一张Photo吗?

提前致谢! 阿维

3 个答案:

答案 0 :(得分:0)

SELECT AlbumID, MIN(PhotoID)
FROM PHOTOS
GROUP BY AlbumID

答案 1 :(得分:0)

这将只返回每个albumID和照片的每个实例中的一个

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

然后你可以:

SELECT 
  DISTINCT `albumID `, `photo`
FROM 
  `Photos` 
INNER JOIN
  `Albums`
  ON `Albums.albumID` = `Photos.albumID`
   AND `Albums.albumTitle` = `albumTitle`

答案 2 :(得分:-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