基于JOIN获取来自第一个表的所有行和来自另一个表的1个匹配行(列)

问题描述 投票:0回答:1

我有两个与图像库相关的表,第一个表存储相册名称,第二个表存储相册图像,我需要在一页上显示所有相册(相册),在第二页上显示相关图像(相册照片)

在第一页上,我必须显示专辑名称和图像,但问题是专辑表(专辑)没有任何与专辑相关的图像。所以我想从表(AlbumImages)中获取具有与相册相关的所有图像的任何图像。

我尝试在JOIN查询下面从两个表中提取所有匹配记录,而我只需要与相册有关的任何图像,以便可以在相册页面上显示它

  SELECT a.AlbumID,Title,AlbumImageName, Description,AlbumDate,AlbumType FROM Albums a LEFT OUTER JOIN AlbumImages i
  ON a.AlbumID = i.AlbumID
   WHERE AlbumType = 1 
  AND  a.IsVisible=1  AND a.IsActive=1 
   ORDER BY AlbumDate DESC

表结构

相册(AlbumID,Title,AlbumDate,AlbumType,AlbumVisible)AlbumImages(AlbumImageID,AlbumID,AlbumImageName,ImageCaption,ImageOrder,AlbumImageVisible)

由于专辑表未在专辑表中存储与专辑相关的任何图像,因此我如何简单地显示第一个表格的详细信息以及与专辑页面上的专辑相关的任何图像,因此>

我有两个与图像库相关的表,第一个表存储专辑名称,第二个表存储专辑图像,我需要在一页上显示所有专辑(相册),在第二页上显示相关图像(专辑-...

sql-server sql-server-2012
1个回答
0
投票

您可以按随机/未指定的顺序使用ROW_NUMBER,只保留每个相册的“第一张”图像记录:

© www.soinside.com 2019 - 2024. All rights reserved.