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