SQL Server连接查询结果并插入另一个表

时间:2013-02-25 22:13:41

标签: sql-server-2008

我有表A和表B。表格A包含产品数据,表格B包含每种产品的图片。每张图片一行。

我需要创建一个SQL语句来循环遍历表A,获取产品ID,然后连接结果集并将其插入表A中的一个字段。

Table A

P-ID, Value1, Value2, Value3,    ImageLocation
35    Name    Price   description 

B

P-ID, ImageLocation
35    /upload/directory/imagename.jpg
35    /upload/directory/imagename2.jpg
35    /upload/directory/imagename3.jpg

最终结果:

TableA:
P-ID, Value1, Value2, Value3,       ImageLocation
35    Name    Price   description   /up/dir/image.jpg,/up/dir/image2.jpg,/up/dir/image3.jpg

我该如何对此进行SQL-ize?

感谢新手!!!!

2 个答案:

答案 0 :(得分:0)

多值列不赞成......并且在Sql Server中没有优雅的方法来执行此操作 - 但是,您可以使用FOR XML PATH

SELECT PID, Value1, Value2, Value3, STUFF((
  SELECT ',' + ImageLocation
  FROM TableB b
  WHERE b.PID = a.PID
  FOR XML PATH('')
), 1, 1, '') AS ImageLocation
FROM TableA a

Sql Fiddle

但是,您是否真的需要在Sql查询中执行此操作,或者这是您可以在应用程序/演示文稿中处理的内容?

答案 1 :(得分:-1)

你可以尝试这些方法:

Select p.id, location || '/' ||......
From
(
Select * from tableA a, tableB b
Where a.id = b.id
)

我不知道您使用的是哪个DBMS,因此请查看哪个字符串con。是合适的