我对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
这甚至可能吗? 谢谢你的帮助
答案 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