SQL join 子查询组合 NULL

来源:互联网 发布:flac那个播放软件好 编辑:程序博客网 时间:2024/06/05 21:53

涉及到NULL 如何运算问题       

表一如下:




表二如下:


现在要想表一和表二根据job1合并,并剔除表二Ti=4 的数据 left jon  组合 不影响组合结果。即如下连接,只去掉Ti是4的,其它保留



如果:

       判断放在on 后面 则

 不能满足需求


如果

     放在where 后面

   仍然不能满足需求


 这时满足需求了

  

这里面涉及到SQL运算的顺序问题,又涉及到NULL字符的运算判断问题, NULL和任何值的运算都是NULL, 上面的 where 后面需要的是True, 如果出现一个NULL 就想相当于不是TRUE,Ti<>4遇到Ti是NULL的时候结果是一个NULL,因此不满足条件,而not exists T 把不是T的都算作真,包括NULL ,因此满足了需求。注意和上面的not (b.Ti<>4) 不一样, 这个是对NULL进行NOT 运算,还是NULL

更进一步,如果去掉not


结果是:


在此进行了一次左连接,然后又相等条件选择。











0 0
原创粉丝点击