3 테이블이 있습니다. 마을; 농부 ... 그리고 마을 당 얼마나 많은 농부들이 있고 마을 당 얼마나 많은 마을이 있는지를 알아야합니다.mySQL 두 테이블에 하나의 쿼리가 포함 된 두 개의 테이블
$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 |
내가 쿼리의 코드를 수행 한 지금까지 .. 나는 PHP와 MySQL에 새로운 해요, 그래서 내 코드는 여전히 쓰레기입니다
특정 도시를 검색하려고 할 때까지 제대로 작동합니다. Farmers 열의 값이 지정된 마을에 대한 올바른 값을 표시합니다.
----TOWN--------VILLAGES----FARMERS-----
| Caibiran | 2 | 23 |
| TOTAL | 2 | 23 |
그러나 I :
----TOWN--------VILLAGES----FARMERS-----
| Caibiran | 2 | 23 |
| Culaba | 7 | 0 |
| TOTAL | 9 | 23 |
는하지만 제가 정말 원하는 것은 이것이다 : 그러나 전체 테이블이 여전히 보여주는 다른 도시의 농민 열이 표시됩니다 0
그것은이 보여 그것을하는 방법을 모른다. 그리고 나는 아이디어가 다 떨어졌습니다. 도와주세요.
테스트하지 않고 말할 수는 없지만 LEFT JOIN을 제거하고 평범한 동등한 시도를 해보시겠습니까? –