2013-06-19 3 views
0
Table1 

id Name 

1  John 

2  Sheldon 

3  Sarah 

이 ========MySQL의 왼쪽 가입하기 - 2 표

Table2 

rid id id2 relation 

1  1 2 1 

2  1 3 1 

내가 한 쿼리에서 테이블 1의 모든 구성원을 얻을 수있는 방법 각 구성원의에서 발견 된 기록의 수를 얻는 방법 총 관계.

내가해야 원하는 결과 :

Jhon  2 

Sheldon 0 

Sarah  0 

답변

1
SELECT t1.name, IFNULL(COUNT(t2.id2), 0) 
FROM table1 t1 LEFT JOIN table2 t2 ON t1.id=t2.id 
GROUP BY t1.id 
+0

타이. 그것은 잘 작동합니다. –

+0

IFNULL이 필요합니까? IFNULL (COUNT (t2.id2), 0)을 COUNT (t2.id2)로 바꿀 때도 같은 결과가 나타 납니까? –

+0

필요하지 않습니다. 단지 예방책입니다 ... – sashkello

3
select Table1.name, count(Table2.id) from Table1 LEFT Join Table2 on Table1.id=Table2.id group by Table2.id 

    OR 

select Table1.name,IFNULL(count(Table2.id), 0) from Table1 LEFT Join Table2 on Table1.id=Table2.id group by Table2.id 

enter image description here

+1

좋은 설명 이봐 ... !! 그것은 나에게 도움이되었다 .. !! –