0

我有两张桌子:1。2 customercustomer_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
;
4

2 回答 2

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
于 2013-08-08T15:51:50.463 回答
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
于 2013-08-08T15:56:27.163 回答