2012-03-18 54 views
0

我有一个USER_ID键,在表A表B表C显示出来。MYSQL COUNT函数在多个表

表A

User_id value 
1  A 
2  B 
3  C 

表B

User_id value 
1  A 
1  B 
1  C 

表C

User_id value 
1  A 
1  B 
0  C 

TA是上USER_ID唯一的。我试图用一个查询中的user_id来获取表B和表C中的出现次数。

我想:

SELECT tA.user_id, (SELECT count(*) FROM tB as countB GROUP BY tA.user_id),(SELECT count(*) FROM tC as countC GROUP BY tA.user_id) FROM tA where tA.user_id='1' 

回答

0

我想这是你想要做什么:

select ta.user_id, 
    (select count(*) from tb where ta.user_id = tb.user_id) CountB, 
    (select count(*) from tc where ta.user_id = tc.user_id) CountC 
from ta 
where ta.user_id = 1 
0

您是否尝试过使用次数(不同的)?

SELECT tA.user_id, count(distinct tB.id), count(distinct tC.id) FROM tA, tB, tC 
WHERE tA.user_id=tB.user_id AND tA.user_id=tC.user_id AND tA.user_id='1'; 

编辑:这是假设你在tB和tC上有一个唯一的字段。