一个查询中的mysql multi count()

afa*_*zit 4 mysql count

我正在尝试计算几个连接表,但没有任何运气,我得到的是每列的相同数字(tUsers,tLists,tItems).我的查询是:

select COUNT(users.*) as tUsers,
       COUNT(lists.*) as tLists,
       COUNT(items.*) as tItems,
       companyName
    from users as c
    join lists as l
    on c.userID = l.userID
    join items as i
    on c.userID = i.userID
    group by companyID
Run Code Online (Sandbox Code Playgroud)

我想得到的结果是

---------------------------------------------
 #  | CompanyName | tUsers | tlists | tItems 
 1  | RealCoName  |    5   |   2    |   15
---------------------------------------------
Run Code Online (Sandbox Code Playgroud)

我必须对我的查询进行哪些修改才能获得这些结果?

干杯

Sha*_*ngh 5

试试这个

SELECT u.userID, companyName, 
       Count(DISTINCT l.listid) as tLists, Count(DISTINCT i.items) as tItems
 FROM users u
   LEFT JOIN lists l ON u.userID=l.userID
   LEFT JOIN items i ON u.userID=i.userID 
GROUP BY u.companyID
Run Code Online (Sandbox Code Playgroud)

  • 这也适用于我正在努力的事情.我唯一的问题是为什么每个`count`列需要不同的? (2认同)