0
我有3個表格:鎮;村;農民......我需要計算每個村莊有多少農民,每個鎮有多少個村莊。我是新來的PHP和MySQL,所以我的代碼仍然是垃圾..到目前爲止,我已經做了查詢代碼:mySQL兩個COUNT在一個查詢中涉及3個表
$query = "SELECT *, COUNT(DISTINCT village.villageID) AS cnt_village,
COUNT(farmer.farmerID) AS cnt_farmers
FROM town LEFT JOIN village ON village.townID = town.townID
LEFT JOIN farmer ON farmer.villageID = village.villageID
GROUP BY town.townID
ORDER BY town.townName";
$result = mysql_query($query);
它已經輸出了正確的計數是這樣的:
----TOWN--------VILLAGES----FARMERS-----
| Caibiran | 2 | 23 |
| Culaba | 7 | 39 |
| TOTAL | 9 | 62 |
它運作良好,直到我嘗試搜索特定的城鎮。會發生什麼情況是Farmers列的值顯示指定城鎮的正確值。但整個表仍與其他城鎮的展示農民欄顯示爲0。
它顯示了這一點:
----TOWN--------VILLAGES----FARMERS-----
| Caibiran | 2 | 23 |
| Culaba | 7 | 0 |
| TOTAL | 9 | 23 |
但我真正想要的是這樣的:
----TOWN--------VILLAGES----FARMERS-----
| Caibiran | 2 | 23 |
| TOTAL | 2 | 23 |
但我不知道該怎麼做。我已經沒有想法了。請幫幫我。
我不能說沒有測試,但嘗試刪除'LEFT JOIN's並嘗試一個普通的equijoin? – 2012-03-22 01:43:38