在MySQL中,如果LEFT JOIN不匹配,我如何计算零?

Dav*_*ave 8 mysql count left-join

我正在使用MySql 5.5.37.我有一个查询用于计算用户登录的次数

select u.id, IFNULL(count(*), 0) 
FROM user u left join logins l 
on u.id = l.user_id group by u.id;
Run Code Online (Sandbox Code Playgroud)

问题是,如果用户从未登录过,上面仍然为该用户返回一个计数,可能是因为当没有匹配的行时LEFT JOIN返回NULL.如何更改此设置,以便在用户从未登录时获得零,然后如果他们已登录至少一次则获得相应的计数?

Gur*_*ngh 8

您可以在右表的其中一列上使用count.

select u.id,
    count(l.user_id)
from user u
left join logins l on u.id = l.user_id
group by u.id
Run Code Online (Sandbox Code Playgroud)