我查看了类似的主题,并尝试了一些自连接,但无法理解如何应用。
在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行
实现这一目标的最佳方法是什么?
发布于 2012-04-17 16:15:30
不需要自连接,只需要一个带有(假设是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可能会。
https://stackoverflow.com/questions/10187515
复制相似问题