2011-02-28 173 views
1

我有2個表。SQL計數行的總和

表1:水果 ID(INT,autoincreasing,主鍵) 一些其他垃圾

表2:客戶 具有 '水果' 列,該列包含從果實表的ID。

我想查詢所有的客戶,並拿出所有水果ID的列表和他們正在使用的次數。

所以這個設置: 水果有

id name 
1  orange 
2  banana 
3  apple 

客戶有6行,如:

id fruit 
1  1 
2  1 
3  2 
4  2 
5  2 
6  3 

想寫一個查詢,這將使我:

fruit id  purchase count 
1     2 
2     4 
3     1 

回答

1

嘗試這

SELECT f.id as fruit_id, COUNT(1) AS purchase_count 
    FROM FRUITS f LEFT JOIN CUSTOMERS c 
    ON F.ID = c.fruit 
GROUP BY f.id 
+0

是............現在我需要解開圍繞這種水果我的頭廢話並記住它如何適用於我的問題 – aaaaaaaaaaaab 2011-02-28 03:37:11

0

應該只是一個簡單的彙總...

SELECT fruit_id, COUNT(fruit_id) AS purchase_count 
FROM customers 
GROUP BY fruit_id 
ORDER BY fruit_id ASC; 
0

未經檢驗

SELECT id, SUM(fruit) as "fruit id", "purchase count" 
FROM Customers 
GROUP BY id;