这里使用左连接为例子,对于左连接是将左边表的数据显示,右边表中如果没有对应的数据则使用null填充。

game表:

game_type表:

SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id

这里的语句得到的内容:

这里我们如果想将没有游戏类型的游戏信息去掉:

SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id where t.type_name!=''

也可以这样:

SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id where not ISNULL(t.type_name)

上面两条语句得到的结果是一样的,事实上准确点来说是应该使用第二条,因为如果在game表中的游戏5记录对应的type_id是一个没有type_name的类型,如下图:

game表:

game_type表:

使用语句:SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id where t.type_name!=''得到的结果:

但是游戏5是有游戏类型的,只是游戏类型为空。所以这时候使用下面语句得到的结果才是正确的:

SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id where not ISNULL(t.type_name)

这里我们将game表中的游戏5记录对应的type_id记录设置为0,那么使用:

SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id

得到的内容:

假如这里我们想将游戏5的记录筛选出来,就是筛选游戏表中没有对应的游戏类型记录:

因为刚刚我们使用语句:SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id where t.type_name!=''

可以将游戏5筛选掉,那么这里如果我们设置成下面这样:

SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id where t.type_name=''

结果不能游戏5给筛选出来,这时候需要的是:

SELECT g.name,g.type_id,t.type_id,t.type_name FROM game g LEFT JOIN game_type t ON t.type_id=g.type_id where ISNULL(t.type_name)

MySQL左右连接查询中的NULL的数据筛选问题的更多相关文章

  1. 【杂记】mysql 左右连接查询中的NULL的数据筛选问题,查询NULL设置默认值,DATE_FORMAT函数

    MySQL左右连接查询中的NULL的数据筛选问题 xpression 为 Null,则 IsNull 将返回 True:否则 IsNull 将返回 False. 如果 expression 由多个变量 ...

  2. Mysql Join-连接查询(中)

    Mysql Join-连接查询(中) 认识 就我平时的数据接触来看, 连接查询也没有很复杂,不够是非常需要耐心和逻辑的, 一点点将数据查出来, 拼接等. 没有什么技巧, 多练习就会了. 无非就是表之间 ...

  3. MySql的连接查询

    类似于oracle的连接查询,mysql连接查询也有左外连接.右外连接.内连接查询.但是,不同的是没有直接 的全外连接查询. 这里介绍MySql的连接查询: 这里已两张表为例:STUDENT 表 和 ...

  4. MySQL查询优化:连接查询排序limit

    MySQL查询优化:连接查询排序limit(join.order by.limit语句) 2013-02-27      个评论       收藏    我要投稿   MySQL查询优化:连接查询排序 ...

  5. sql连接查询中的分类

    sql连接查询中的分类 1.内连接(结果不保留表中未对应的数据) 1.1等值连接:关联条件的运算符是用等号来连接的. 1.2不等值连接:连接条件是出等号之外的操作符 1.3自然连接:特殊的等值连接,在 ...

  6. 【大数据】SparkSql 连接查询中的谓词下推处理 (二)

    本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/II48YxGfoursKVvdAXYbVg作者:李勇 目录:1.左表 join 后条件下推2.左表j ...

  7. 【大数据】SparkSql 连接查询中的谓词下推处理 (一)

    本文首发于 vivo互联网技术 微信公众号 https://mp.weixin.qq.com/s/YPN85WBNcnhk8xKjTPTa2g 作者:李勇 目录: 1.SparkSql 2.连接查询和 ...

  8. 关于连接查询主要是左右连接查询中,where和on的区别

    工作中,今天用到左连接查询,我自己造的数据,需要根据条件进行筛选,但是筛选不符合我的要求,最终发现是左右连接中where和on的区别,在作怪,工作中用的表关联太多,我下面简化要点,仅仅把注意点写个简单 ...

  9. Mysql in子查询中加limit报错

    Mysql in子查询中加limit报错 select id from aa where id in ( select id from bb limit 10 ); 改写成 SELECT id FRO ...

随机推荐

  1. 整理的各种模板 (随时弃坑emmmmm)

    线段树: #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> ...

  2. SQL Server插入中文乱码

    如果数据库的Collocation是英文的,字段是varchar类型,向表中插入中文数据,会出现乱码. 解决方法: 方法1. 修改varchar 为 nvarchar类型, 并在插入数据前加N,例如: ...

  3. java获取本机ip的方法

    直接上代码: public class LocalIPUtil { public static String getLocalIp(HttpServletRequest request){ Strin ...

  4. Luogu P1955 [NOI2015]程序自动分析

    又一次做了这道题,感慨万千. 记得寒假时,被cmd2001点起来讲这道题,胡言乱语..受尽鄙视(现在也是好吗)..后来下课想A掉,可是3天下来总是错...后来抄了分题解就咕咕了... 今天老师留了这道 ...

  5. Fleet-运行一个高可用的服务

    运行一个高可用的服务 使用CoreOS最大的好处就是你可以以高可用的方式来运行你的服务.接下来我们将部署两个一样的Apache web server容器.然后,我们将通过让一台机器出现故障,fleet ...

  6. Emacs中自动刷新dired缓冲区

    Emacs中自动刷新dired缓冲区 在dired模式中,如果在不同buffer间切换,buffer不会自动更新,有时还需要手工按“g”键,比较麻烦,如下设置和代码能够在buffer切换和执行shel ...

  7. vue-cli3项目优化首页加载过慢的一些心得

    博主最近发现vue-cli3项目做完后,点击首页加载时间好久啊,一般都要3-5s.这样的加载时间博主自己都受不了,所以就有了这个随笔,将自己的一些研究心得分享给大家. 首先推荐大家下载一个webpac ...

  8. vue-cli3项目中解决动态引入图片img404的问题

    博主最近手头再做一个项目,需要调用天气接口,并且还要动态显示天气相关图片icon. 本来以为没什么大问题,结果硬生生被这个动态图片路径搞得民不聊生(博主还是 too young,too simple~ ...

  9. iOS - runtime 常用方法举例说明

    使用的自定义类,如下: #import <Foundation/Foundation.h> @interface Person : NSObject @property(nonatomic ...

  10. Ionic 2 中的创建一个闪视卡片组件

    闪视卡片是记忆信息的重要工具,它的使用可以追溯到19世纪.我们将要创建一个很酷的短暂动画来实现它.看起来像是这个样子的: 闪视卡片示例 Ionic 2 实例开发 新增章节将为你介绍如何在Ionic 2 ...