2012-03-22 2 views
0

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

그것은이 보여 그것을하는 방법을 모른다. 그리고 나는 아이디어가 다 떨어졌습니다. 도와주세요.

+1

테스트하지 않고 말할 수는 없지만 LEFT JOIN을 제거하고 평범한 동등한 시도를 해보시겠습니까? –

답변

1

이 문제가 해결 되었습니까?

농부가 참여하지 않으므로 행을 결과 집합에서 제거해야합니다.

+0

고마워, 알았어. :) –

관련 문제