2011-08-28 49 views
0

大家好日子。 我的一位不會說英語的朋友要求我在他的網站上提出問題。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選擇結果。

回答

1

下面將做你問:

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

它主要統計的訂單就可以找到每個客戶的數量。

+0

謝謝你,這就是他一直在尋找! – NewProger

1

這是可行的,因爲「無訂單」由於LEFT JOIN而給予Orders.id NULL。
COUNT(column)忽略空值,因此你會得到零

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

謝謝你,那是他正在尋找的! – NewProger

相關問題