`
flyfox1982
  • 浏览: 80794 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

left join NULL 值问题

 
阅读更多

今天一个同事问我如下的语句得出的结果不对:
select A.a,B.b from A left join B where B.b < c;
他希望得到的记过是 那些 与B 有关联,并且B 满足 B.b < c的结果,以及没有与B关联的结果都出来,但是上面的语句 只会出来那些与B有关联并满足条件B.b < c 的列。 只是因为如果没有关联B.b 为null,比较的结果也为NULL。改成如下:
select A.a,B.b from A left join B where B.b is null or B.b < c;


所以在left join 的时候,如果用B表里面的字段作为判断,一定要注意判断 NULL 值的情况,这个知识点不难,只是很多新手在写的时候,会容易遗忘而已。

分享到:
评论

相关推荐

    MySQL Left JOIN时指定NULL列返回特定值详解

    当右表的某些字段在LEFT JOIN后为NULL时,我们可以利用函数来将这些NULL值替换为特定值,如0或其他有意义的值。在MySQL中,有几种方法可以实现这一目标,包括IFNULL、COALESCE以及IF函数。 首先,让我们深入了解...

    inner join、 left join 、right join、 outer join之间的区别

    ### inner join、left join、right join、outer join之间的区别 在数据库操作中,连接(Join)是一种非常重要的操作,用于组合两个或多个表中的数据。根据连接的方式不同,可以分为几种类型:`INNER JOIN`、`LEFT ...

    SQL语句left join/right join/inner join 的用法比较

    如果右表中没有匹配项,结果将填充NULL值。在给出的示例中,LEFT JOIN SQL语句是: ```sql SELECT * FROM A LEFT JOIN B ON A.aID = B.bID ``` 输出结果展示了A表的所有记录,即使B表中没有对应的bID。对于B表中不...

    hive sql + left join 数据缺失

    ### Hive SQL Left Join 数据缺失问题解析 #### 一、问题背景 在大数据处理场景中,Hive 是一种广泛使用的工具,用于对存储在 Hadoop 文件系统中的数据进行数据汇总、查询和分析。随着Hive版本的不断更新,部分用户...

    Left join优化规则的研究

    总结,Left Join 优化的关键在于识别那些可以过滤掉 NULL 结果的条件,并利用这些条件转化为 Inner Join。这样不仅简化了查询,也提高了执行效率。在实际应用中,了解并掌握这些规则能够帮助开发人员编写出更高效的 ...

    SQL left join

    SQL Left Join SQLLeft Join是一种常用的数据库查询操作,它可以将两个或多个表格中的数据结合起来,以便更好地分析和处理数据。在本文中,我们将详细介绍SQL Left Join的使用方法、特点和区别,以及与Right Join...

    sql的left join和count应用

    然后使用 `LEFT JOIN` 将这两个子查询连接起来,如果在 `a2` 中找不到匹配的 `WORD_ID`(即没有子节点),`a2.WORD_ID` 将为 `NULL`,因此 `isLeaf` 会被标记为 'true';反之,如果有子节点,`isLeaf` 会被标记为 '...

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

    Dim leftJoin = (From l In leftTable _ Join r In rightTable On l.Key Equals r.Key Into gj = Group _ From r In gj.DefaultIfEmpty() Select New With {l.Key, l.Value, r.Key, r.Value}) Dim rightJoin = ...

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

    如果不匹配,则结果中的右表部分为NULL值。本文将重点讨论`LEFT JOIN`中过滤条件放置位置的不同——放在`ON`子句后与放在`WHERE`子句后——及其带来的差异。 #### SQL JOIN基本概念回顾 在深入讨论之前,我们先...

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

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

    left join right join inner join 区别和联系

    左连接(LEFT JOIN)、右连接(RIGHT JOIN)和内连接(INNER JOIN)是三种最基本的连接类型。在本节中,我们将详细介绍左连接、右连接和内连接的区别和联系。 左连接(LEFT JOIN) 左连接返回左表中的所有行,右表...

    mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录

    MySQL中的`NOT IN`, `LEFT JOIN`, `IS NULL`, 和 `NOT EXISTS` 是四种不同的SQL查询方式,它们在特定情况下可以实现相似的功能,但实际执行效率可能会有很大差异。本文主要探讨这四种方法在处理大数据量时的性能表现...

    Mysql之innerjoin,leftjoin,rightjoin详解.pdf

    Mysql 之 inner join、left join、right join 详解 Mysql 中的连接查询是指从多个表中检索数据,并将它们组合成一个结果集。inner join、left join 和 right join 是 Mysql 中三种最常用的连接查询方式。 inner ...

    关于sql的left join,right join,inner join,outerjoin

    如果右表中没有匹配的记录,结果将显示NULL值。其语法结构为: ```sql SELECT column_name(s) FROM table1 LEFT JOIN table2 ON table1.column = table2.column; ``` 2. RIGHT JOIN(右连接) 与LEFT JOIN相反,...

    (Left join , Right Join, Inner Join)用法详解

    ### (Left join , Right Join, Inner Join)用法详解 #### 一、基本概念与应用场景 在数据库查询语言SQL中,连接(Join)是一种非常重要的操作,它允许我们结合两个或多个表的数据来检索信息。根据不同的连接方式,...

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

    需要注意的是,在Laravel中,`leftJoin`方法是在查询构建器(Query Builder)中使用的,而在Eloquent ORM中则使用`leftjoin`(注意大小写)。两者在使用上是等效的,只是调用方式不同。 为了确保正确实现功能,我们...

    SQL语句inner join,left join ,right join连接的不同之处

    根据连接方式的不同,可以分为多种类型,包括内连接(Inner Join)、左连接(Left Join)以及右连接(Right Join)。本文将详细探讨这三种连接方式的区别,并通过具体的例子来解释它们的应用场景。 ### 内连接...

    join on 语句及扩展

    2. LEFT JOIN (或 LEFT OUTER JOIN): LEFT JOIN返回左表(table1)的所有记录,即使右表(table2)没有匹配的记录。如果在右表中没有找到匹配项,结果将用NULL填充来自右表的列。语法: ```sql SELECT columns FROM ...

    SQL语句优化之JOIN和LEFT JOIN 和 RIGHT JOIN语句的优化

    例如,如果LEFT JOIN后的WHERE子句限制了JOIN条件,使得所有生成的NULL行都不满足,那么可以将LEFT JOIN简化为INNER JOIN。 嵌套循环JOIN算法: 嵌套循环JOIN是最基础的JOIN算法,它依次遍历每个表,找到匹配的行。...

Global site tag (gtag.js) - Google Analytics