博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转载]SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别
阅读量:6824 次
发布时间:2019-06-26

本文共 1029 字,大约阅读时间需要 3 分钟。

前几天在查数据中的时候用了and结果一直不对(查的数据多了)直到我把and 改成where 数据就正常了!

看到一篇帖子!特意转载,原博主未申明不可转载,若作者不愿意则删除…
源博地址:


  众所周知,数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过LEFT JOIN 等语句进行相关联,并且我们也会为我们所想查询的数据进行一个筛选,这时我们就会用到过滤语句。

  LEFT JOIN ON WHERE:在临时表生成后,再对临时表的数据进行过滤,再返回左表。

  LEFT JOIN ON AND:在临时表生成的过程时,ON中的条件不管是否为真,都将返回左表。

  例如:

      表1.id  表1.value      表2.value  表2.name        1     100        100      开心       2     200        200     很开心       3       300       300      超级开心       4     400        400      无敌开心

SQL语句如下:

  [1] SELECT * FROM 表1 LEFT JOIN 表2 ON (表1.value = 表2.value) WHERE 表2.name = 开心  [2] SELECT * FROM 表1 LEFT JOIN 表2 ON (表1.value = 表2.value) ON 表2.name = 开心

当执行[1]的时候得:

      表1.id  表1.value      表2.value  表2.name         1     100        100      开心

当执行[2]的时候得:

      表1.id  表1.value      表2.value  表2.name         1     100        100      开心       2     200        NULL      NULL       3       300        NULL      NULL       4     400        NULL      NULL       
你可能感兴趣的文章
Thrift使用实例
查看>>
Nand flash uboot 命令详解【转】
查看>>
曲线的奇点
查看>>
【Linux】了解服务器的情况
查看>>
解决Spring配置文件不显示design和source, namespace 问题
查看>>
Efficiently traversing InnoDB B+Trees with the page directory--slot
查看>>
算法笔记_191:历届试题 大臣的旅费(Java)
查看>>
乐为物联网平台初步体验(1)
查看>>
利用ArcGIS水文分析工具提取河网
查看>>
看58同城9月招聘季 大数据显示蓝领薪酬更高
查看>>
跳台阶
查看>>
Android API学习 SoundPool 和 MediaPlayer
查看>>
郁闷的一天
查看>>
祖宗十八代的称谓
查看>>
如何配置Hyper-V的虚拟机通过主机网络上网 (NAT)
查看>>
单例模式
查看>>
287. Find the Duplicate Number
查看>>
将Android library开源到jcenter
查看>>
java线程池
查看>>
在Eclipse中使用XDebug调试代码 | Using XDebug debug code in eclipse
查看>>