SQL - 从Join返回到单个列的所有行的列?

时间:2010-12-08 10:18:01

标签: c# asp.net sql

我正在编写一个显示交货详情的SQL查询,另外还有一个单独的列,所有交货项目ID都用逗号分隔。 Deliveries和DeliveryItems都在一个单独的表中,所以我想我将使用Join来检索链接到该交付的所有项目,但是如何将它们放入我将要显示的列中,并将每个项目分开逗号?

由于

编辑:这是我的表结构的概念

Deliveries -
ID (PK)
...(other non relevant fields)...

DeliveryItems -
ID (PK)
Delivery (links to ID of delivery)

因此,对于该交付的每个项目,我希望在该列的列中显示分隔的项目ID逗号。

2 个答案:

答案 0 :(得分:2)

你可以在SQL server 2005中使用PIVOT来实现。 PIVOT用于Transpose行到列或列到行,因此在您的情况下,您可以使用简单连接获取行格式的数据,之后您可以使用PIVOT来转置数据,然后您可以在一列中连接列。 / p>

检查这个link,它有一个很好的例子。

答案 1 :(得分:0)

MySQL中有一个GROUP_CONCAT函数可以做到这一点(看一下documentation)。在DBMS中寻找类似的东西。