怎么把数据库里查询为空的数据也显示出来

比如 id=1的这条数据在库里不存在,但是还是想在页面上显示id=1的这条空数据,使其它列为0 

dominikruan 发布于 2021-9-6 17:24
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
zsh331Lv8专家互助
发布于2021-9-6 17:28

准备一张含有所有ID值的维度表,用实时表与维度表关联即可;

————————

最佳回答
0
luojian0323Lv7资深互助
发布于2021-9-6 17:29

那你生成一个完整序号数据集,然后

left join 一个你的这个表

最后 处理 其他字段为空转为0  nvl(字段,0)

最佳回答
0
Z4u3z1Lv6专家互助
发布于2021-9-6 17:30

SELECT A.ID,表.* FROM (

    SELECT DISTINCT(ID) ID FROM (

        SELECT ID FROM 表

        UNION ALL

        SELECT '1' [ID]

    ) B

) A

LEFT JOIN 表  ON A.ID=表.ID

最佳回答
0
15922204585Lv6高级互助
发布于2021-9-6 17:36

其中的一个方法

image.png

最佳回答
0
liu.yangLv2初级互助
发布于2021-9-6 17:57(编辑于 2021-9-6 17:58)

如果每次只查一个 id的话,简单点可以这样写

oracle库

select t.id,nvl(t1.其他字段,0) as 其他字段

from (select 1 as id from dual)t

left join 表名 t1

on t.id=t1.id

mysql库

select t.id,ifnull(t1.其他字段,0) as 其他字段

from (select 1 as id)t

left join 表名 t1

on t.id=t1.id

跟三楼的思路大致一样

  • 5关注人数
  • 419浏览人数
  • 最后回答于:2021-9-6 17:58
    请选择关闭问题的原因
    确定 取消
    返回顶部