SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别

数据库的表都是单独存在的,但是当我们进行联合查询(多表查询)时,我们获得数据库返回的值时就好像在一张表里一样,这是因为在进行联合查询时数据库会生成一个临时表返回给我们所想要的数据信息,这时我们都是通过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

点赞
收藏

评论区

加载中...

相关推荐

手写Java HashMap源码

HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22

sql join

1.1.1摘要Join是关系型数据库系统的重要操作之一,SQLServer中包含的常用Join:内联接、外联接和交叉联接等。如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时我们应该考虑使用Join,因为Join具体联接表或函数进行查询的特性本文将通过具体例子介绍SQL中的各种常用Join的特性和使

sql server 运维时CPU,内存,操作系统等信息查询(用sql语句)

我们只要用到数据库,一般会遇到数据库运维方面的事情,需要我们寻找原因,有很多是关乎处理器(CPU)、内存(Memory)、磁盘(Disk)以及操作系统的,这时我们就需要查询他们的一些设置和内容,下面讲的就是如何查询它们的相关信息。1、(1)获取数据库服务器CPU核数等信息(只适用于SQL2005以及以上版本数据库)/\\\\\\

mybatis的mapper特殊字符转移以及动态SQL条件查询

前言我们知道在项目开发中之前使用数据库查询,都是基于jdbc,进行连接查询,然后是高级一点jdbcTemplate进行查询,但是我们发现还是不是很方便,有大量重复sql语句,与代码偶合,效率低下,于是就衍生出来ORM框架,如Mybatis,Hibernate,还有SpringBoot的,SpringDataJPA条件查询我们知道在mybatisma

Excel数据转化为sql脚本

在实际项目开发中,有时会遇到客户让我们把大量Excel数据导入数据库的情况。这时我们就可以通过将Excel数据转化为sql脚本来批量导入数据库。1在数据前插入一列单元格,用来拼写sql语句。 具体写法:"insertintot\_student(id,name,age,class)value("&B2&",'"&C2&"',"&D2&"

EF core的原生SQL查询以及用EF core进行分页查询遇到的问题

在用.netcore进行数据库访问,需要处理一些比较复杂的查询,就不得不用原生的SQL查询了,然而EFCore和EF6的原生sql查询存在很大的差异。在EF6中我们用SqlQuery和ExecuteSqlCommand进行sql语句的执行,而在EFCore中我们则使用FromSql和ExecuteSqlCommand一.ExecuteS

SQL语句中LEFT JOIN ON WHERE和LEFT JOIN ON AND的区别 - HelloWorld