Mysql查询,选择所有客户及其订单

时间:2011-08-28 08:40:01

标签: mysql

大家好日子。 我的一位不会说英语的朋友请我在这个网站上为他提问。

好。他的问题是:他需要创建一个MySQL查询来选择所有客户端和他们的订单数量,如果他们没有,则需要0。

有两个表:

table Customers: id, name

table Orders: id, customer_id

这样的事情:

client 0, 10 orders
clietn 1, 0 orders
client 2, 3 orders

等等。但当然没有文字,只需普通的mysql选择结果。

2 个答案:

答案 0 :(得分:1)

以下将按您的要求执行:

select customers.name, count(orders.id) 
from customers 
left join orders on customers.id=orders.customer_id 
group by customers.name

它基本上计算了每个客户可以找到的订单数量。

答案 1 :(得分:1)

这是有效的,因为“无订单”因为LEFT JOIN而为Orders.id提供NULL COUNT(column)会忽略NULL,因此您将获得零

SELECT
   C.Name,
   COUNT(O.id)
FROM
   Customers C
   LEFT JOIN
   Orders O ON C.id = O.customer_id
GROUP BY
   C.Name