zoukankan      html  css  js  c++  java
  • inner join on会过滤掉两边空值的条件

    前两天工作过程中,遇到一个问题,关于join on查询的,对于查出来的结果一直都很疑惑,这里记录一下。
    1.首先看下面这条sql查询语句:

    查询出来的结果是25053

    2.加个 o.lat = n.lat 的条件:

    查询出来的结果是15586

    3.现在我们将条件改成 o.lat != n.lat,查出来的结果是不是应该显示 25053-15586的差值呢?

    我们发现结果并不是预想的那样,而是125。奇怪,剩下的25053-15586-125 = 9342条数据哪里去了呢,怎么查询不出来?

    4.再看下面这条sql语句,我们过滤掉 o.lat和n.lat 都是空的情况:

    9342!!
    啊哈,原来如此,join on 会过滤掉两边都是空值的条件。
    如果返回左表中为null的数据,可以使用left join,相反,如果返回右表中null的数据,使用right join。
    inner join(可以简写成join),将不会返回左右表中均为null的数据。

    长不大的童心
  • 相关阅读:
    0603学术诚信和职业道德
    0602第二个冲刺
    0525《构建之法》8、9、10章读后感
    0525Sprint回顾
    实验三进程调度
    解决提问的问题
    阅读《构建之法》第13-17章
    阅读:第10、11、12章
    作业5.2(封装及测试)
    作业5.1
  • 原文地址:https://www.cnblogs.com/yaofengdoit/p/11936032.html
Copyright © 2011-2022 走看看