联合列

时间:2018-04-27 13:11:24

标签: mysql sql

我对SQL很陌生,我希望有人可以在这个问题上给我带头。或者如果这甚至可能。 在下表中:

order_id      order_contact      order_location       order_value
1             Tom's Business      123 Street           100
1             John's Management   123 Street           100
2             Tim's Business      543 Avenue           50
3             Phil's Business     789 Avenue           50

我的问题是:当order_id为1时,是否可以加入/联合这2条记录?联系人是记录之间的唯一区别。我曾与Union合作,但我认为这只能用不同的列而不是行。 我希望它能显示出类似的东西:

order_id      order_contact        order_location      order_value
1             Tom's Business       123 Street          100
              John's Management                

2             Tim's Business      543 Avenue           50
3             Phil's Business     789 Avenue           50

这甚至可能吗? 谢谢你的帮助

1 个答案:

答案 0 :(得分:0)

您可以使用GROUP_CONCAT使用以下解决方案:

SELECT order_id,
    GROUP_CONCAT(DISTINCT order_contact SEPARATOR ' ') AS order_contact,
    GROUP_CONCAT(DISTINCT order_location SEPARATOR ' ') AS order_location,
    GROUP_CONCAT(DISTINCT order_value SEPARATOR ' ') AS order_value
FROM table_name 
GROUP BY order_id
  

演示: http://sqlfiddle.com/#!9/78d7ea/2/0