`
flyfox1982
  • 浏览: 78399 次
  • 性别: 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列返回特定值详解

    我们有时会有这样的应用,需要在sql的left join时,需要使值为NULL的列不返回NULL而时某个特定的值,比如0。这个时候,用is_null(field,0)是行不通的,会报错的,可以用ifnull实现,但是COALESE似乎更符合标准

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

    NOT IN、JOIN、IS NULL、NOT EXISTS效率对比 语句一:select count(*) from A where A.a not in (select a from B) 语句二:select count(*) from A left join B on A.a = B.a where B.a is null 语句三:select ...

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

    今天小编就为大家分享一篇解决在laravel中leftjoin带条件查询没有返回右表为NULL的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

    关于 “A LEFT JOIN B ON 条件表达式” 的一点提醒 ON 条件(“A LEFT JOIN B ON 条件表达式”中的ON)用来决定如何从 B 表中检索数据行。 如果 B 表中没有任何一行数据匹配 ON 的条件,将会额外生成一行所有列为 ...

    SQL LEFT JOIN 关键字

    SQL LEFT JOIN 关键字 SQL LEFT JOIN 关键字 LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。 SQL LEFT JOIN 语法 SELECT column_name(s) FROM...

    MySQL在右表数据不唯一的情况下使用left join的方法

    1.left join 基本用法 mysql left join 语句格式 A LEFT JOIN B ON 条件表达式 left join 是以A表为基础,A表即左表,B表即右表。 左表(A)的记录会全部显示,而右表(B)只会显示符合条件表达式的记录,如果在右表(B)...

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

    NULL 博文链接:https://appofis.iteye.com/blog/467692

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

    LEFT JOIN 关键字从左表(table1)返回所有的行,即使右表(table2)中没有匹配。如果右表中没有匹配,则结果为 NULL。这篇文章主要介绍了sql中的left join以及on、where关键字的区别,需要的朋友可以参考下

    MySQL的LEFT JOIN表连接的进阶学习教程

    比如说在LEFT JOIN查询里,一般来说左表就是主表,但这只是经验之谈,很多时候经验主义是靠不住的,为了说明问题,先来个例子,建两个演示用的表categories和posts: CREATE TABLE IF NOT EXISTS `categories` ( `...

    支持连表查询的mybatis-plus

    支持连表查询的mybatis-plus,mybatis-plus风格的连表操作提供 wrapper.leftJoin() wrapper.rightJoin()等操作

    SQL多表连接查询、多表关联

    sql多表连接查询inner join, left join , right join ,full join ,cross join Posted on 2008-05-07 21:55 我开始懂了 阅读(21431) 评论(9) 编辑 收藏 inner join,full outer join,left join,right jion 内部连接 ...

    MySQL联表查询基本操作之left-join常见的坑

    概述 对于中小体量的项目而言,联表查询是再常见不过的操作了,尤其是在做报表的时候。... `role_name` VARCHAR(50) DEFAULT NULL COMMENT '角色名', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMME

    pcw0118#ZXBlog#七种inner join1

    第一种inner join: 第二种left join: 第三种right join: 第四种left join where b.id is null: 第五种

    天思产品触发器

    from tf_pos a left join prdt c on a.prd_no=c.prd_no left join mf_Pos d on a.os_no=d.os_no LEFT JOIN MF_POS_Z E ON A.OS_NO=E.OS_NO, INSERTED b WHERE a.os_no=b.os_no and a.itm=b.itm IF (@tax_id='1') ...

    sql学习笔记

    left join左外连接,不管左表是否在右表中有匹配行,都查询出来,右表所有列值为null right join 右外连接 inner join内连接,同join JOIN: 如果表中有至少一个匹配,则返回行 LEFT JOIN: 即使右表中没有匹配,也从...

    SQL多表连接查询实例分析(详细图文)

    left outer joinSQL语句:select * from student left join course on student.ID=course.ID执行结果:左外连接包含left join左表所有行,如果左表中某行在右表没有匹配,则结果中对应行右表的部分全部为空(NULL)....

    mysql中将null值转换为0的语句

    代码如下:SELECT IF(AVG(cai.conversionsRate) IS NULL,0,AVG(cai.conversionsRate)) AS conversionsRate... 您可能感兴趣的文章:mysql not in、left join、IS NULL、NOT EXISTS 效率问题记录MySQL查询空字段或非空字段

    sql server几种Join的区别测试方法

    Left Join:以左边的表为主表,列出主表所有记录,匹配能匹配的,不能匹配的用 NULL列出 Right Join:以右边的表为主表,列出主表所有记录,匹配能匹配的,不匹配的用NULL列出 下面来看代码: 创建测试表: CREATE...

Global site tag (gtag.js) - Google Analytics