sql语句 返回左表所有行,即使在右表中没有
答案:2 悬赏:80 手机版
解决时间 2021-03-27 07:14
- 提问者网友:温旧梦泪无声
- 2021-03-26 13:47
sql语句 返回左表所有行,即使在右表中没有
最佳答案
- 五星知识达人网友:傲气稳了全场
- 2021-03-26 14:08
select
salesman_info.id,
sum(case when salesman_info.id = salesman_customer.salesman_id then 1 else 0 end) as cnt
from
salesman_info
left join salesman_customer on salesman_info.id = salesman_customer.salesman_id
where
salesman_info.id in (1,2,3,4,5)
group by
salesman_info.id这样试试,有问题的话截图
追问和之前的问题一样,只返回了右表中有数据的几条数据追答私信你,你给我几条数据
salesman_info.id,
sum(case when salesman_info.id = salesman_customer.salesman_id then 1 else 0 end) as cnt
from
salesman_info
left join salesman_customer on salesman_info.id = salesman_customer.salesman_id
where
salesman_info.id in (1,2,3,4,5)
group by
salesman_info.id这样试试,有问题的话截图
追问和之前的问题一样,只返回了右表中有数据的几条数据追答私信你,你给我几条数据
全部回答
- 1楼网友:空山清雨
- 2021-03-26 15:32
楼主好,count()表中的id会对非空计数,直接改成count(*),就可以了。因为你左联接了salesman_customer这个表,那么这个表中的customer_id就会有空值的情况,而你直接写了count(customer_id),就指的是对customer_id的非空部分进行计数。所以就不会返回空值的行了,直接count(*)则是对所有列进行行计数,就不存在你说的问题了追问还是和之前一样呢,只返回了右表中有的,没有的没返回追答能给我看下你的表结构么?我给你写
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯