SQL:我如何找到客户的客户订单?

时间:2013-08-08 15:47:57

标签: mysql

我有两张桌子: 1. customer 2. customer_order

客户表包含客户数据(duh),customer_order包含所有订单。 我可以customer.id=customer_order.id_customer加入他们。

一切都很好,但现在我想要一个查询,其中我有所有客户ID,然后是这些客户订购的订单(customer_order.id)(订单日期)

像这样:

customer 100    order 4, order 5, order 9
customer 101    order 7, order 8, order 15

我有这个,但是没有给我结果,它将所有客户ID放在不同的行上:

SELECT c.id, c.firstname, co.id
FROM customer c
JOIN customer_order co
ON c.id=co.id_customer
;

2 个答案:

答案 0 :(得分:5)

您可以使用group_concat函数

select c.id, c.firstname, GROUP_CONCAT(co.id SEPARATOR ',')
from custom c
join custom_order co
group by c.id

这将返回类似

的内容
customer 100 | 4,5,9
customer 101 | 7,8,15

答案 1 :(得分:0)

你试过了吗?

SELECT c.id, c.firstname, co.id
FROM customer c
INNER JOIN customer_order co
ON c.id=co.id_customer
ORDER BY c.id;

它是LEFT或INNER,根据您的使用情况,您会得到不同的结果,我认为为了您的目的,LEFT是您想要使用的。然后,当您检索数据时,可能必须将其放入:

array["custid"][] = co.id