从一个表连接计数从另一个表中选择 - mysql

时间:2014-04-27 09:52:27

标签: mysql join

我在表a上有一个带有子查询的select查询:

select UserName, Name, anniversaryDate, RegionCode 
from a where UserName in
(
    select Username from
    (
        select Username, max(timeUsed)
        from log_table where role='Cou'
        group by Username order by max(timeUsed) desc limit 10
    ) a
)

工作正常,现在我有另一个名为b的表, 在那张桌子上我只有3列:

用户名,PName和反馈

每个UserName多次,我想加入第一个查询我从第一个查询得到的每个UserName的计数。

for eaxmple:

SELECT COUNT(UserName) FROM b where UserName='Admin' group by UserName

如何将第二个查询的结果加入第一个查询?

表:

log_table:
id - Int,AI,PK
用户名 - varchar
行动 - Int
timeUsed - 日期时间
角色 - varchat

一个:
UserName - varchar,PK
名称 - varchar
anniversaryDate - 日期时间
RegionCode - Int

B:
用户名 - varchar
PName - varchar
反馈 - varchar

1 个答案:

答案 0 :(得分:0)

根据您的表格结构,下面的查询可能会添加您要查找的必要列:

    select users.UserName, Name, anniversaryDate, RegionCode, 
        Coalesce(count(b.UserName),0) as cnt 
    from users 
        left outer join (select Username, max(timeUsed)
            from log_table where role='Cou'
            group by Username order by max(timeUsed) desc limit 10
        ) a using (UserName)
        left outer join fedbacks b on (a.UserName = b.userName)
        group by users.UserName;