0

我查看了类似的主题并尝试了一些自我加入,但不明白如何申请。

在 Pervasive SQL 11 中有这样的表:

kit|part

1 | 21

1 | 22

1 | 23

1 | 24

2 | 30

2 | 31   
....

想连续退回这个

1 | 21 | 22 | 23 | 24

2 | 30 | 31

相关零件的数量从 1 到 30+ 不等,每个套件只能返回 1 行

实现这一目标的最佳方法是什么?

4

1 回答 1

0

不需要自加入,只需一个带有(假设 MySQL)GROUP_CONCAT的 GROUP BY :

SELECT kit, GROUP_CONCAT(part)
FROM table
GROUP BY kit

您可以选择排序,或添加分隔符:

SELECT kit, GROUP_CONCAT(DISTINCT part ORDER BY part ASC SEPARATOR ' ')
FROM table
GROUP BY kit

但是,如果您希望将结果放在单独的列中,则无法在 MySQL 中编写动态自连接,自动连接足够的时间来拥有所有表,并且 MySQL 不支持枢轴。其他(R)DBMS 可能会。

于 2012-04-17T08:15:29.893 回答