• 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的数据。

    长不大的童心
  • 相关阅读:
    NOIP 模拟 序列操作
    LUOGU 1525 关押罪犯
    HDU2473 Junk-Mail Filter
    BZOJ 2096 Pilots
    luogu 3939 数颜色
    NOIP模拟 赌博游戏
    Unity3D
    HTML5
    Cocos2d-x——支持多触点
    Cocos2d-x——Cocos2d-x 屏幕适配总结
  • 原文地址:https://www.cnblogs.com/yaofengdoit/p/11936032.html
Copyright © 2020-2023  润新知