[英]Select to return NULL on left join
我有兩個包含以下數據的表:
用戶
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)用戶,無論用戶是否有照片,如果用戶沒有照片,則顯示計數或空值或零。 使用上面的表格,它會是這樣的:
user_id | count
-------- ------
1 | 2
3 | 1
4 | null
嘗試這個:
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;
您可以將照片左加入用戶並將其分組到用戶上以查找計數。 如果計數大於 0,則獲取計數,否則為 null。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.