Lea*_*ing 2 sql sql-server sql-server-2008
我有两个表用于存储Album_Name,另一个表用于存储Album_Photos
我想写一个查询,以便它可以让我了解详细信息
Album_Name Album_ID Album_Date ImageSmall
Album One 1 2013-08-02 100.jpg
Album Two 2 2013-09-09 55.jpg
Run Code Online (Sandbox Code Playgroud)
我希望从Album_Name表格和第一张图片中详细说明相册详情,我没有从Album_Photo表格分配到相册
我试过JOINS哪个不起作用然后我创建一个视图将跟随SQL这不起作用
SELECT
a.Album_Name AS Album_Name
, a.Album_Date AS Album_Date
, a.Page_ID AS PageID
, p.Image_ID AS Image_ID
, p.Image_Small AS Image_Small
FROM
Album_Name a
LEFT OUTER JOIN
Album_Photos p ON a.Album_ID = p.Album_ID
Run Code Online (Sandbox Code Playgroud)
我试着DISTINCT Album_Name查看它让我和上面的语句一样
SELECT
DISTINCT [Album_Name], Album_Date, Page_ID, Image_Small
FROM
vw_AlbumName_AlbumPhotos
WHERE
Page_ID = 3
Run Code Online (Sandbox Code Playgroud)
样本数据Album_Name和Album_Photos表格
Album_ID Album_Name Album_Date Page_ID
1 Album One 2013-08-02 3
2 Album Two 2013-09-09 3
3 Album Three 2013-09-10 9
Image_ID Page_ID Album_ID ImageSmall
1 0 1 100.jpg
2 0 1 21.jpg
3 0 1 36.jpg
4 0 1 44.jpg
5 0 2 55.jpg
6 0 2 66.jpg
7 0 3 10.jpg
Run Code Online (Sandbox Code Playgroud)
任何帮助表示赞赏.
您正在复制,因为每张专辑有多张照片.要获得一个,请使用row_number():
SELECT Album_Name AS Album_Name, a.Album_Date AS Album_Date, a.Page_ID AS PageID,
p.Image_ID AS Image_ID, p.Image_Small AS Image_Small
FROM Album_Name a left outer JOIN
(select p.*, row_number() over (partition by Album_Id order by Image_ID) as seqnum
from Album_Photos p
) p
ON a.Album_ID = p.Album_ID and seqnum = 1;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4129 次 |
| 最近记录: |