我有两张包含以下数据的表格:
用户
user | online
-------- -------
1 | 1
2 | 0
3 | 1
4 | 1
5 | 0
照片
user_id | photo
-------- -------
1 | photo1.jpg
1 | photo2.jpg
2 | photo3.jpg
3 | photo4.jpg
我想选择所有在线用户(在线= 1),无论用户是否有照片,显示计数或null,如果用户没有照片,则为零。使用上面的表格,它将是这样的:
user_id | count
-------- ------
1 | 2
3 | 1
4 | null
答案 0 :(得分:1)
试试这个:
select
u.user user_id,
case when count(p.user_id) > 0 then count(p.user_id) end `count`
from users u
left join photos p on u.user = p.user_id
where u.online = 1
group by u.user;
您可以将照片添加到用户并将其分组到用户上以查找计数。如果count大于0,则得到计数,否则为null。