如何更改SQL查询输出?

时间:2010-12-25 16:32:11

标签: sql mysql

我正在使用这个简单的SQL查询从MySQL数据库中的两个表中检索数据:

SELECT customer_id, domain_name
FROM customers_orders
INNER JOIN orders ON order_id = sub_id

结果类似于:

1114    somedomain.com
1115    anotherdomain.net
1116    domain1.org
1116    domain2.com

我如何告诉它给我一个类似于:

的输出
1114    somedomain.com
1115    anotherdomain.net
1116    domain1.org, domain2.com

为了避免两行具有相同的customer_id ...我想知道它是否甚至可以用SQL?我是SQL的初学者,我非常感谢你对此的帮助。

非常感谢!

4 个答案:

答案 0 :(得分:6)

尝试这样的事情

SELECT customer_id, GROUP_CONCAT(domain_name SEPARATOR ',')
FROM customers_orders
INNER JOIN orders ON order_id = sub_id
GROUP BY customer_id

答案 1 :(得分:3)

您可以使用:

SELECT customer_id, GROUP_CONCAT(domain_name ORDER BY domain_name SEPARATOR ', ') domain_name
FROM customers_orders INNER JOIN orders 
ON order_id = sub_id
GROUP BY customers_orders.customer_id

答案 2 :(得分:3)

尝试下一步:

select customer_id, group_concat(domain_name separator ', ')
    from customers_orders group by customer_id

答案 3 :(得分:2)

不,它不是。根据其他人的建议,可以通过GROUP_CONCAT进行。但我不建议使用它。最好在处理代码中处理此问题。它将更容易阅读和维护。