`
Freedomchx
  • 浏览: 5551 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

数据库中left join 的on条件与where条件的区别

阅读更多

 数据库在连接两张或多张表时,首先会生成一张临时的中间表,然后再将这张临时表返回给用户。在使用left jion 时,on和where条件的区别如下:

     1. on条件是在生成临时表时使用的,它不管on后面的条件是否为真,都会返回左边表中的记录,and只会过滤掉右边表中的记录。

     2.where条件是在临时表生成好后使用的,是对临时表进行过滤的条件,会将条件不为真的记录通通过滤掉。

分享到:
评论

相关推荐

    sql中的left join及on、where条件关键字的区别详解

    LEFT JOIN(在某些数据库中称为LEFT OUTER JOIN)是一种特殊的JOIN类型,它着重于从左表(即指定的第一个表格)返回所有行,即使在右表(第二个表格)中没有匹配的记录。当右表中没有匹配时,结果列将填充NULL值。 ...

    深入Oracle的left join中on和where的区别详解

    当我们涉及到LEFT JOIN时,可能会遇到使用ON和WHERE子句的情况,两者虽然都可以用来指定条件,但在语义上有所区别。 首先,ON子句是在生成联接结果集(临时表)时应用的条件。无论ON条件是否为真,都会返回左表的...

    join on 语句及扩展

    6. ON与WHERE的区别:在JOIN操作中,ON子句用于指定连接条件,而WHERE子句用于过滤结果集。ON子句的条件应用于确定哪些记录应该组合在一起,而WHERE子句的条件则应用于已经组合后的结果集。换句话说,ON是在连接之前...

    Left join优化规则的研究

    当 Left Join 可以被转化为 Inner Join 时,通常是因为在 WHERE 子句中存在关于右表的非 NULL 条件。这允许数据库跳过对左表中无匹配项的记录,从而提高查询速度。 2.1 条件转化 对于以下 Left Join 查询: ```sql ...

    MySQL left join操作中on和where放置条件的区别介绍

    然而,在使用`LEFT JOIN`时,我们可以在`ON`子句和`WHERE`子句中放置条件,这两者之间存在一些关键区别。 首先,我们要理解`ON`和`WHERE`的优先级。`ON`的优先级高于`WHERE`。在执行`LEFT JOIN`时,数据库会先根据`...

    解析mysql left( right ) join使用on与where筛选的差异

    在使用LEFT JOIN时,如果在ON子句中指定了连接条件A.ID = B.ID,并且在WHERE子句中指定了B.ID ,那么这两个条件是如何被处理的呢? 当使用ON子句进行过滤时,数据库首先执行A表和B表的连接操作,依据ON子句中的条件...

    SQL中的left outer join,inner join,right outer join用法详解

    2. 左外连接(Left Outer Join):包含左边表的全部行(不管右边的表中是否存在与它们匹配的行),以及右边表中全部匹配的行。 3. 右外连接(Right Outer Join):包含右边表的全部行(不管左边的表中是否存在与它们...

    数据库各种join连接

    数据库各种join连接 数据库中的join连接是指将两个或多个表连接起来,以便检索数据...在写连接查询时,推荐在on后面只跟连接条件,而对中间表限制的条件都写到where子句中。这可以避免查询结果的歧义性和难以理解性。

    解析sql语句中left_join、inner_join中的on与where的区别

    这意味着在LEFT JOIN中,WHERE子句的条件会减少最终结果中的行数,而在INNER JOIN中,WHERE子句的条件与ON子句的效果相同,因为它们都在连接时应用。 在性能方面,虽然SQL语句6和7的逻辑效果相同,但它们的执行计划...

    sql的left join和count应用

    在SQL语言中,`LEFT JOIN` 和 `COUNT` 是两种非常重要的操作,它们在数据库查询中扮演着关键角色。在这个问题中,我们看到一个数据表 `TPL_WORD1`,它包含字段 `Wordid`(主键)、`idFuid`(上一级节点ID)和 `Name`...

    sql查询左连接on与where的区别(2).pdf

    总结一下,Left Join中on与where的关键区别在于: 1. on的执行顺序在join之前,它决定了哪些记录会参与连接操作。 2. where的执行顺序在join之后,它决定了哪些记录会被最终展示在结果集中。 3. on用于指定连接条件...

    解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题

    然而,在Laravel的Eloquent ORM中,如果直接使用`leftJoin`和`where`方法,会导致行为与原生SQL不一致,因为`where`方法实际上会应用一个内部的INNER JOIN逻辑,从而丢失了左连接的意义。正确的写法应该是将筛选条件...

    on与where、group by的用法

    与`LEFT JOIN`不同,`INNER JOIN`会根据`ON`条件和`WHERE`条件过滤出同时满足两边表中条件的记录。这意味着,在`INNER JOIN`中,`ON`条件和`WHERE`条件的作用是相同的。 - **示例**:使用`INNER JOIN`时: ```sql...

    SQL中的left join right join

    SQL中的JOIN操作是数据库查询中不可或缺的部分,特别是LEFT JOIN和RIGHT JOIN,它们允许我们合并来自多个表的数据,根据特定的关联条件。以下是这些JOIN类型详细解释: 1. INNER JOIN(或简写JOIN): INNER JOIN...

    ThinkPHP采用原生query实现关联查询left join实例

    在本实例中,我们将深入探讨如何使用ThinkPHP的原生`query`方法实现左连接(LEFT JOIN)的关联查询。 首先,我们要理解什么是左连接。在SQL中,左连接是一种连接两个表的方式,返回左表的所有记录,即使右表中没有...

    Join on 连接

    在SQL查询中,`JOIN` 是一种非常重要的操作,它用于合并两个或多个表中的数据,根据指定的关联条件将这些表的记录匹配在一起。在本篇内容中,我们将深入探讨`JOIN`的不同类型,包括`INNER JOIN`、`LEFT JOIN`、`...

Global site tag (gtag.js) - Google Analytics