Sql server 2008 如何通过子查询获取多列?
我想得到会员和他们的照片。每个成员有2张照片。(我不是说个人资料图像) 有两个名为Members和MemberPhotos的表 这是我的问题,但它不起作用(预期): 也许有人会说我应该使用内部连接,我不想使用内部连接,如果我使用它,我会得到多个数据,比如:Sql server 2008 如何通过子查询获取多列?,sql-server-2008,tsql,Sql Server 2008,Tsql,我想得到会员和他们的照片。每个成员有2张照片。(我不是说个人资料图像) 有两个名为Members和MemberPhotos的表 这是我的问题,但它不起作用(预期): 也许有人会说我应该使用内部连接,我不想使用内部连接,如果我使用它,我会得到多个数据,比如: Name Surname PhotoName Bill Gates bill.png Bill Gates bill2.png Steve Jobs
Name Surname PhotoName
Bill Gates bill.png
Bill Gates bill2.png
Steve Jobs steve.jpg
Steve Jobs steve2.jpg
关于查询,你有什么建议吗
谢谢
编辑:
下面是我想要得到的输出:
Name Surname FirstPhoto SecondPhoto
Bill Gates bill.png bill2.png
Steve Jobs steve.jpg steve2.png
示例查询的唯一问题是在后面有一个额外的逗号
as MemberSecondPhoto
如果你移除这个,它就可以正常工作
但是,当该查询正在运行时,因为您知道每个成员只有两张照片,所以可以使用更简单的查询:
SELECT
M.Name as MemberName,
M.LastName as MemberLastName,
MPF.PhotoName as MemberFirstPhoto,
MPS.PhotoName as MemberSecondPhoto
FROM Members M
LEFT JOIN MemberPhotos MPF ON M.ID = MPF.MemberID AND MPF.IsFirst = 1
LEFT JOIN MemberPhotos MPS ON M.ID = MPS.MemberID AND MPS.IsFirst = 0
SELECT
M.Name as MemberName,
M.LastName as MemberLastName,
MPF.PhotoName as MemberFirstPhoto,
MPS.PhotoName as MemberSecondPhoto
FROM Members M
LEFT JOIN MemberPhotos MPF ON M.ID = MPF.MemberID AND MPF.IsFirst = 1
LEFT JOIN MemberPhotos MPS ON M.ID = MPS.MemberID AND MPS.IsFirst = 0