2013-06-19 55 views
0
Table1 

id Name 

1  John 

2  Sheldon 

3  Sarah 

========MySQL的左连接 - 如何获得的第二个表

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

TY。它工作正常。 –

+0

是否需要IFNULL?当我用COUNT(t2.id2)代替IFNULL(COUNT(t2.id2),0)时,它会给出相同的结果吗? –

+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

好的解释多德...!这对我有帮助.. !! –