簡體   English   中英

選擇在左連接時返回 NULL

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM