MySQL左右连接查询中的NULL的数据筛选问题
这里使用左连接为例子,对于左连接是将左边表的数据显示,右边表中如果没有对应的数据则使用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)
最新文章
- wamp环境下phpmyadmin拒绝访问
- Django concept
- Hog SVM 车辆 行人检测
- javascript压缩图片无刷新上传
- [XML] C# XmlHelper操作Xml文档的帮助类 (转载)
- 页面加速Chromium 预压 Prerendering
- wemall app商城源码中android按钮的三种响应事件
- 从零开始理解JAVA事件处理机制(2)
- 云计算之路-阿里云上:针对 docker swarm 故障的部署调整以及应急措施
- 【阿里云API】 阿里云API调用的若干说明
- 6.使用桌面版AI伴侣或手机版AI伴侣实时预览编程效果
- linux 学习笔记 wc命令
- MySQL:数据操作
- window10总提示幸福倒计时,解决方法
- Go 文件操作(创建、打开、读、写)
- ES_DEVOPS-1
- bzoj 1106
- vuejs模仿实现一个电影分享类网站
- redis知识树
- Linux SSH 无密码登录
热门文章
- scrapy 一些设置和问题
- 物体检测丨从R-CNN到Mask R-CNN
- IDEA SpringBoot +thymeleaf配置
- Kendo UI 单页面应用(三) View
- RK3288开发过程中遇到的问题点和解决方法之Kernel
- apache官方供下载所有项目所有版本的官方网站地址
- 一个mybatis错误导致无法启动项目的问题
- 洛谷 P2383 狗哥玩木棒
- Codeforces 666E Forensic Examination SAM or SA+线段树合并
- SAP Cloud for Customer客户主数据的重复检查-Levenshtein算法