`
jipengyun2008
  • 浏览: 32556 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

left join on 和 where 的使用

阅读更多
筛选条件放在left join on后面和放在where后面的结果不一样的。
记住on后面是连接条件,where后面是筛选条件就OK啦!
即:on后面的条件筛选参与连接的记录,主表中的记录会全部出现结果集中,而只有符合on条件的从表记录才会出现在结果集中。
SELECT A.ORDER_ID, B.TRANS_TYPE
  FROM    GW_GATEWAY_ORDER A
       LEFT JOIN
          SYS_MCHT_SETTLE_DETAIL B
       ON A.ORDER_ID = B.ORDER_ID
WHERE A.ORDER_ID >= 20101209150044021 AND A.ORDER_ID <= 20101210150048099;
结果:


ORDER_ID * TRANS_TYPE
20101209150044021 1
20101209150044021 2
20101210141359000 1
20101210144447001




SELECT A.ORDER_ID, B.TRANS_TYPE
  FROM    GW_GATEWAY_ORDER A
       LEFT JOIN
          SYS_MCHT_SETTLE_DETAIL B
       ON A.ORDER_ID = B.ORDER_ID AND B.trans_type = 1
WHERE A.ORDER_ID >= 20101209150044021 AND A.ORDER_ID <= 20101210150048099;
结果:




ORDER_ID * TRANS_TYPE
20101209150044021 1
20101210141359000 1
20101210144447001





SELECT A.ORDER_ID, B.TRANS_TYPE
  FROM    GW_GATEWAY_ORDER A
       LEFT JOIN
          SYS_MCHT_SETTLE_DETAIL B
       ON A.ORDER_ID = B.ORDER_ID
WHERE A.ORDER_ID >= 20101209150044021
   AND A.ORDER_ID <= 20101210150048099
   AND B.trans_type = 1;
结果:


ORDER_ID * TRANS_TYPE
20101209150044021 1
20101210141359000 1



分享到:
评论

相关推荐

    left_join_on_and与left_join_on_where的区别

    left_join_on_and与left_join_on_where的区别

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

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

    join on 语句及扩展

    这里我们将深入探讨几种JOIN类型及其使用,以及ON和WHERE子句的区别。 1. INNER JOIN: INNER JOIN返回两个表中匹配的记录。这意味着如果某个记录在其中一个表中没有对应的匹配项,那么这个记录就不会出现在结果集中...

    SQL _join on 和where的执行顺序1

    在使用JOIN操作时,ON和WHERE子句的作用不同: 1. ON条件: ON条件在生成中间表时应用,用于定义两个表之间的关联条件。即使ON条件中的某些记录不满足,LEFT JOIN、RIGHT JOIN和FULL JOIN仍然会返回左表或右表的...

    sql语句join中on和where的区别

    ### SQL语句JOIN中ON和WHERE的区别 #### 引言 在SQL中,JOIN操作用于合并两个或多个表中的行。正确理解`ON`和`WHERE`子句的区别对于高效地编写查询至关重要。本文将详细解释这两者的不同,并通过具体的例子来加深...

    left join 过滤条件写在on后面和写在where 后面的区别

    ### left join 过滤条件写在on后面和写在where 后面的区别 在SQL查询语句中,连接(JOIN)是一种非常重要的操作,用于从两个或多个表中获取数据。其中,`LEFT JOIN`是一种常用的连接类型,它返回左表的所有记录以及...

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

    在这个查询中,我们首先使用`LEFT JOIN`连接了`class`和`score`两个表格,然后在`WHERE`子句中过滤出`stu_id`为'A001'的记录。请注意,即使在`score`表中没有与特定`class_id`匹配的`stu_id`,`LEFT JOIN`也会返回左...

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

    在使用LEFT JOIN和RIGHT JOIN时,条件筛选可以使用ON和WHERE子句。它们之间的差异是很多人容易混淆的地方。ON子句是在连接操作中对连接条件进行指定,而WHERE子句通常用于对结果集进行过滤。由于这两者在查询的逻辑...

    Left join优化规则的研究

    SELECT * FROM t1 LEFT JOIN t2 ON t1.c1 = t2.d2 WHERE condition1 [AND conditionN]; ``` 若 `conditionK` 涉及到右表 `t2` 的列,并且不是 `t2.column IS NULL` 类型的条件,那么可以优化为 Inner Join: ```sql ...

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

    总结一下,`ON` 和 `WHERE` 在 `LEFT JOIN` 中的主要区别在于: 1. `ON` 用于在生成临时表时定义连接条件,无论条件是否满足,都会返回左表的所有行。 2. `WHERE` 在临时表生成后进行过滤,如果它包含了连接条件,...

    hive sql + left join 数据缺失

    LEFT JOIN DBS c ON a.DB_ID = c.DB_ID WHERE b.TBL_ID IS NULL AND c.NAME = 'dw'; ``` 2. **优化TEZ参数配置**: - 调整TEZ引擎的相关参数,比如增大允许的输入数据大小等,以避免数据丢失的问题。 - 可以...

    Linq to datable(Left join right join full join)实例

    在LINQ中,这可以通过`GroupJoin`和`SelectMany`方法实现,或者使用`From…Join…Where…DefaultIfEmpty…Select`结构。 示例: ```vbnet Dim query = From l In leftTable _ Join r In rightTable On l.Key ...

    sql的left join和count应用

    在SQL语言中,`LEFT JOIN` 和 `COUNT` 是两种非常重要的操作,它们在数据库查询...在实际数据库管理、数据分析或应用程序开发中,熟练掌握 `LEFT JOIN` 和 `COUNT` 的使用能够帮助我们编写出更加高效且准确的查询语句。

    from 多张表 等于 left join 其他表.

    标题与描述中的“from多张表等于left join其他表”主要涉及的是SQL查询语句中两种不同的连接方式:内连接(通常在FROM子句后直接使用WHERE子句实现)和左连接(LEFT JOIN)。这两种连接方式在处理多表查询时有着不同...

    深入理解mysql之left join 使用详解

    ON 条件(“A LEFT JOIN B ON 条件表达式”中的ON)用来决定如何从 B 表中检索数据行。 如果 B 表中没有任何一行数据匹配 ON 的条件,将会额外生成一行所有列为 NULL 的数据 在匹配阶段 WHERE 子句的条件都不会被使用...

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

    SELECT * FROM t_institution i LEFT OUTER JOIN t_teller t ON i.inst_no = t.inst_no WHERE i.inst_no = "5801" 右外连接(Right Outer Join) 右外连接是将右边表的全部行与左边表中的匹配行连接起来,例如: ...

Global site tag (gtag.js) - Google Analytics