博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL左右连接查询中的NULL的数据筛选问题
阅读量:6906 次
发布时间:2019-06-27

本文共 1568 字,大约阅读时间需要 5 分钟。

这里使用左连接为例子,对于左连接是将左边表的数据显示,右边表中如果没有对应的数据则使用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)

 

 

转载于:https://www.cnblogs.com/alonely/p/10452448.html

你可能感兴趣的文章
按位异或运算,交换两个变量中的数值
查看>>
Android--向SD卡读写数据
查看>>
J2EE的体系架构——J2EE
查看>>
安卓常用 widget
查看>>
大二暑假第一周进度报告
查看>>
ZROI2018提高day2t1
查看>>
EZOJ #87
查看>>
C++智能指针应用方式体验
查看>>
作业三:读《构建之法》1-5章读后感
查看>>
Hadoop综合大作业
查看>>
C#使用StreamWriter类写入文件文件
查看>>
响应式开发
查看>>
【LeetCode每天一题】Candy(分糖果)
查看>>
聊聊HTTPS和SSL/TLS协议
查看>>
日期与毫秒互转(转)
查看>>
python jinja 模板教程
查看>>
Stani's Python Editor下载
查看>>
使用apidoc 生成Restful web Api文档
查看>>
Linux 下后台运行程序,查看和关闭后台运行程序
查看>>
SortedDictionary和SortedList
查看>>