2012-04-17 27 views
0

我查看了类似的主题,尝试了一些自连接,但无法理解如何应用。在Pervasive SQL中旋转表格11

有这样的表普适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行

完成此操作的最佳方法是什么?

回答

0

无需自连接,只是一个GROUP BY(假设是MySQL的)GROUP_CONCAT

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可能会。

+0

可以不分栏,我喜欢你的建议。但是,我试着用我的表名普及,但给了我一个表达错误 – user1338140 2012-04-17 08:35:06

+0

Oh Pervasive?你有没有补充说,或者我是否直截了当地阅读它?我假设MySQL。编辑你的问题标题,以吸引更多的人关注:] – Konerak 2012-04-17 08:56:57

+0

抱歉不清楚,感谢编辑我的标题。 – user1338140 2012-04-17 09:05:08