大家好。我的一个不会说英语的朋友让我在这个网站上为他提一个问题。
好吧。他的问题是:他需要做一个MySQL查询来选择所有的客户和他们的订单数量,或者0如果他们没有。
有两个表:
table Customers: id, name
table Orders: id, customer_id
像这样:
client 0, 10 orders
clietn 1, 0 orders
client 2, 3 orders
以此类推。但是当然没有文本,只是普通的mysql select result.
下面将按照您的要求执行:
select customers.name, count(orders.id)
from customers
left join orders on customers.id=orders.customer_id
group by customers.name
它基本上计算它可以为每个客户找到的订单数量。
这可以工作,因为"no orders"为Orders.id
提供NULL,因为LEFT JOIN。COUNT(column)
忽略null,所以你会得到0
SELECT
C.Name,
COUNT(O.id)
FROM
Customers C
LEFT JOIN
Orders O ON C.id = O.customer_id
GROUP BY
C.Name