2015-09-30 69 views
1

計數行我有三個的MySQL表是這樣的:MySQL的加入第三個表

client     network     activities 
\_id      \_id      \_id 
\_name     \_name     \_client_id 
\_[...]     \[...]     \_[...] 
\_network_id 

現在我想有以下結果:

client.*, network.name, number_of_activities_for_each_client 

其實我有這樣的select語句:

select client.*, network.name 
from client 
left join network 
on client.network_id = network.id 

如何擴展語句?我也想看到所有的客戶。

回答

1
SELECT c.*, n.name, COUNT(a.id) number_of_activities_for_each_client 
FROM clients c 
LEFT JOIN network n 
ON n.id = c.network_id 
LEFT JOIN activities a 
ON a.client_id = c.id 
GROUP BY c.id 
+0

如果客戶端的活動表中沒有行,您可能需要將其更改爲'COALESCE(COUNT(a.id),0)'。 – AdamMc331

+0

不,我發現沒有必要添加該函數,如果沒有找到記錄,它將返回0:http://sqlfiddle.com/#!9/2cdb7/1 – Alex

+0

哦...我很喜歡99%確定它返回null。我不知道從那時起我有什麼想法。 – AdamMc331