mssql从一个表返回多个表

时间:2014-07-02 12:38:37

标签: sql-server

我们试图将结果从一对多关系中获得单行,在actor表中至少有25000行,每个至少有10个图像

**Table** ActorTable
ActorId Int
ActorName nvarchar
ActorAge Int

 ----------------------------------------------------------------
 ActorId    ActorName   ActorAge
 ----------------------------------------------------------------
 1          Actor1      34  
 2          Actor2      40
 3          Actor3      25
 4          Actor4      19
 5          Actor5      45
 ----------------------------------------------------------------

**Table** ActorImagesTable
ImgId Int
ActorId Int
ActorImage nvarchar

 ----------------------------------------------------------------
 ImgId      ActorId   ActorImage
 ----------------------------------------------------------------
 1          1         a.jpg
 2          1         b.jpg
 3          2         c.jpg
 4          2         d.jpg
 5          1         e.jpg
 ----------------------------------------------------------------

想要返回ActorId,ActorName,ActorAge,ActorImage

 ----------------------------------------------------------------
 ActorId    ActorName   ActorAge  ActorImage
 ----------------------------------------------------------------
 1          Actor1      34        a.jpg,b.jpg,e.jpg  
 2          Actor2      40        c.jpg,d.jpg  
 3          Actor3      25
 4          Actor4      19
 5          Actor5      45
 ----------------------------------------------------------------

请帮忙

此致

2 个答案:

答案 0 :(得分:0)

n条件如果你指定了imageid那么你将得到一条记录。如果你只是只使用连接条件加入,那么你肯定会获得多条记录,因为它是一对多的

如果您想将行更改为列,我建议您使用Pivot

答案 1 :(得分:0)

啊,SQL Server中没有GROUP_CONCAT函数。您必须使用XML PATH解决方法。见Concatenate many rows into a single text string?