zoukankan      html  css  js  c++  java
  • 浅谈!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

    同理,RIGHT JOIN和FULL JOIN都具备这个特性,注意,INNER JOIN不具备这个特性。

      今天就这么愉快的结束吧!

      我的心愿是,改变世界!

  • 相关阅读:
    2.Spring Boot 有哪些优点?
    3.什么是 JavaConfig?
    4.如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?
    Java中的异常处理机制的简单原理和应用。
    垃圾回收的优点和原理。并考虑2种回收机制。
    我们在web应用开发过程中经常遇到输出某种编码的字符,如iso8859-1等,如何输出一个某种编码的字符串?
    Request对象的主要方法:
    JSP的内置对象及方法。
    Servlet执行时一般实现哪几个方法?
    说说你所熟悉或听说过的j2ee中的几种常用模式?及对设计模式的一些看法
  • 原文地址:https://www.cnblogs.com/iffan/p/6602361.html
Copyright © 2011-2022 走看看