2014-09-30 30 views
0

我有2個與多對多關係相關的實體SQL多對多排名

clients,services,clients_has_services。

我需要與各自的客戶的數量檢索所有服務,像這樣:

服務1 20
客服2 10
服務3 5
服務4 0
....

我在進行查詢時遇到問題,此問題只返回一條記錄:

SELECT 
    services.id as id, 
    services.name as name, 
    COUNT(clients_has_services.services_id) as ranking 
FROM services 
LEFT JOIN clients_has_services ON services.id = clients_has_services.services_id 
+0

您能否提供樣本數據? – Jens 2014-09-30 05:41:47

回答

1

您需要按分組劃分:

SELECT 
    services.id as id, 
    services.name as name, 
    COUNT(clients_has_services.services_id) as ranking 
FROM services 
LEFT JOIN clients_has_services ON services.id = clients_has_services.services_id 
GROUP BY 
    services.id, 
    services.name 
+0

做到了!我會在幾分鐘內給出答案 – 2014-09-30 05:43:45