SQL Query连接一列并有一堆其他列?

时间:2012-06-27 14:54:15

标签: mysql sql

  

可能重复:
  Concatenate row values T-SQL

我有一张这样的表:

ref_num   name      type       route
----------------------------------------
1         A         W          401
2         B         X          401
3         C         E          401
3         C         E          411
4         D         Z          401
5         K         W          701
5         K         W          991
5         K         W          556
5         K         W          401
6         L         X          401
7         D         Y          401
7         D         Y          411
7         D         Y          680
8         E         Z          401

我想要一个像这样的结果:

ref_num   name      type       routes
----------------------------------------
1         A         W          401
2         B         X          401
3         C         E          401,411
4         D         Z          401
5         K         W          701,991,556,401
6         L         X          401
7         D         Y          401,411,680
8         E         Z          401

如果有人可以给我一个查询示例来获得所需的结果,那将非常感谢

3 个答案:

答案 0 :(得分:3)

select ref_num, name, type, group_concat(routes)
from your_table
group by ref_num

在MySQL中,您不必group by您选择的所有值。其他值可能会随机选择。但如果其他值在一个组中相同,那么您不必担心。 OP的问题就是这种情况。

答案 1 :(得分:3)

您可以将GROUP_CONCATGROUP BY连接起来,例如:

SELECT ref_num, name, type, GROUP_CONCAT(routes SEPARATOR ', ')   
FROM TableNAme 
GROUP BY ref_num, name, type

答案 2 :(得分:0)

我认为WM_CONCAT会这样做:

SELECT REF_NUM, NAME, TYPE, WM_CONCAT(ROUTE) 
FROM ROUTES
GROUP BY REF_NUM, NAME, TYPE;