왼쪽 테이블에서 모든 행을 반환하지 않는 3 개 테이블에, 카운트 가입 특별한 사람이없는 지역을 포함하여 각 지역의 특별 인의 내가 왼쪽으로 할 경우왼쪽 외부 내가이 3 개 테이블이
같이, 지역과 사람의 조인
select a.id as idArea, count(p.id) as count
from areas a
left join persons p on p.area_id = a.id
group by a.id;
이 잘 작동; 사람이없는 영역이 나타나고 개수가 0입니다.
동일한 영역에 모두 2 개의 항목 만있는 special_persons 테이블에서 동일한 작업을 수행하는 방법이 분명하지 않습니다.
나는 다음과 같은 시도 :
select a.id as idArea, count(sp.id_person) as count
from special_persons sp, areas a
left join persons p on p.area_id = a.id
where p.area_id = a.id
and sp.id_person = p.id
group by a.id;
그리고 만에 2 특별한 사람을 가지고 일어나는 지역, 그리고 점점 계속하려면 2
의 수와, 1 개 행을 반환 의 목록이 모두 영역입니다. 하위 쿼리를 사용해야합니까? 다른 가입? 나는 그것에 대해 어떻게 가야할지 모르겠다. 당신은 다른 왼쪽을 추가 할 수 있습니다
. 또한'where.' 절에 'p.area_id = a.id'가 있습니다. 왼쪽 대신 join inner를 만듭니다. –