INNER JOIN的COUNT功能

时间:2012-03-17 15:57:42

标签: mysql count

我有下表:

A  FromA  User
1  NULL   Bob
2  1      Bob
3  1      Chris
4  2      Chris

用户是创建项目A的人员的姓名.IndoA是用户从中获取的来源。

我想弄明白是克里斯最频繁的来源。

我的查询

SELECT count(T1.A GROUP BY T1.User), T1.User
FROM Table T0 
INNER JOIN Table T1 ON T0.FromA=T1.A
WHERE T0.User='Chris'

它应该返回Bob=2。但它似乎没有用。

3 个答案:

答案 0 :(得分:1)

你只是在错误的地方找到你的小组。这应该工作

SELECT count(T1.A ), T1.User
FROM Table T0 
INNER JOIN Table T1 ON T0.FromA=T1.A
WHERE T0.User='Chris'
GROUP BY T1.User

答案 1 :(得分:1)

试试这个:

select t2.user, count(*) Total from t t1
join t t2 on t1.fromA = t2.a
where t1.user = 'Chris'
group by t2.user
order by Total desc
limit 1

limit 1会为您提供最常用的来源。

修改

  

内部联接将无法获取记录=> 1 | NULL | Bob作为'fromA'列具有空值。所以,切换到左连接--Angelin Nadar

不。这是working example

答案 2 :(得分:1)

试试这个,我更改了表别名:

SELECT count(*), t_User.User
FROM 
  Table t_FromA 
    LEFT OUTER JOIN 
  Table t_User 
   ON t_User.FromA=t_FromA.A
WHERE t_FromA.User='Chris'