mysql中外联和 is null 结合使用
今天学习mysql ,碰到了一个问题:有部门表,员工表,员工表中有一个部门表的外键,查询没有员工的部门名称。
表结构如下:
员工表employees:
部门表department表:
题目很简单呢,信手写出sql如下:
##这种写法很愚蠢怎么能写count(*)=0呢,
SELECT * FROM departments d LEFT JOIN employees e ON d.`department_id` =e.`department_id` GROUP BY d.`department_id` HAVING COUNT(*)=0;
运行以后发现坏了,不对。count(*)=0什么时候都不会用到这样的语句的,因为能查询出来count肯定不会是0.
修改后的正确sql如下:
SELECT d.* ,e.employee_id
FROM departments d
LEFT JOIN employees e
ON d.department_id=e.department_id
WHERE e.employee_id IS NULL;
这个sql利用了外链接的一个特性:如果主表的一条记录和从表任何一条数据都不符合连接条件,则显示出来并且从表应该显示的字段为null.
很简单的问题,可能是自己sql还是没有学好。博客为记。
mysql中外联和 is null 结合使用的更多相关文章
- mysql中查询字段为null或者不为null的sql语句怎么写?
在mysql中,查询某字段为空时,切记不可用 = null,而是 is null,不为空则是 is not null select * from table where column is null; ...
- MySql中的count、NULL和空串的区别
**1.count (1).count (*) 与 count (列名) 的区别** 表 count(1) count(*) count (列名) 作用 统计表中的所有的记录数 会统计表中的所有的记录 ...
- mysql中查询值为NULL的记录
例如表A中的user_login_name的值为NULL,用mysql语句把这条记录查询出来,用select user_login_name from A where user_login_name ...
- SQL Server、Oracle和MySQL中查出值为NULL的替换
参考文献: http://database.51cto.com/art/200803/67397.htm 正文 在SQL Server Oracle MySQL当数据库中查出某值为NULL怎么办? 1 ...
- mysql中不等于过滤null的问题
在写SQL 条件语句是经常用到 不等于‘!=’的筛选条件,此时要注意此条件会将字段为null的数据也当做满足不等于的条件而将数据筛选掉. 例:表A A1 B1 1 0 2 1 3 NULL 用 se ...
- SQL Server MySQL 中的 in 与 null
例子: create table t(x int,y int); insert into t(x,y) values(1,1),(2,2),(null,null); 查询一: select x,y f ...
- mysql 中不等于过滤 null 的问题(同时比较等于,大于和小于)
在写 SQL 条件语句是经常用到 不等于'!='的筛选条件,此时要注意此条件会将字段为 null 的数据也当做满足不等于的条件而将数据筛选掉. 1.原始数据和表结构 CREATE TABLE `tes ...
- mysql中判断字段为空
mysql中判断字段为null或者不为null 在mysql中,查询某字段为空时,切记不可用 = null, 而是 is null,不为空则是 is not null select nulco ...
- MySQL 中NULL和空值的区别
平时我们在使用MySQL的时候,对于MySQL中的NULL值和空值区别不能很好的理解.注意到NULL值是未知的,且占用空间,不走索引,DBA建议建表的时候最好设置字段是NOT NULL 来避免这种低效 ...
随机推荐
- 子元素的margin-top会影响父元素
---恢复内容开始--- 之前在写项目的时候,发现原本想让父子元素之间加点边距,却让父元素产生了margin-top,于是百度之后发现了原因. 在css2.1盒模型中 In this specific ...
- flask之jinja2模板语言
一.jinja2简单介绍 Jinja2是Python里一个被广泛应用的模版引擎,他的设计思想来源于Django的模板引擎,并扩展了其语法和一系列强大的功能.其中最显著的一个是增加了沙箱执行功能和可选的 ...
- Nagios-4.1.1 (OpenLogic CentOS 7.2)
平台: CentOS 类型: 虚拟机镜像 软件包: apache2.4.6 nagios 4.1.1 php5.4.16 devops monitoring nagios open-source ph ...
- SqlServer报错:主体“dbo”不存在
某台SqlServer数据库执行订阅发布的时候,报错: 无法作为数据库主体执行,因为主体“dbo”不存在.无法模拟这种类型的主体,或您没有所需的权限.(源:MSSQLServer,错误号:15517) ...
- JW Player 6.7(网页视频播放器,可在手机中播放),自定义Logo和右键菜单链接,支持MP3、MP4、FLV等格式,支持通过HTML5、FLash播放
原版下载地址:http://www.jwplayer.com/ JW Player是世界上最流行的网页影音播放器,支持的视频格式主要有:MP4.FLV.F4V等格式,支持的音频格式主要有:MP3.AA ...
- 获取win10 Insider Preview报错0x80080300
获取win10 Insider Preview报错0x80080300 1.msconfig2.隐藏Microsoft 服务3.disable 剩下的服务4.win + i, Update&s ...
- ARM实验1 —— 流水灯实验
实验内容: 编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现. 实验目的: 熟悉开发环境的使用. 掌握Exynos 4412处理器GPIO功能 ...
- Python变量状态保持四种方法
Python状态保持 全局 global def tester(start): global state state = start def nested(label): global state ...
- 搭建mock服务器(微信小程序)
搭建mock服务器(微信小程序) 如何在微信小程序使用mock.js实在是个问题,为了完全模拟访问路由和数据,选择在搭建本地mock服务器是一个不错的选择. 以下示例了一个mock服务器的搭建过程以及 ...
- MitmProxy使用
安装 tar -zxvf mitmproxy-3.0.1-linux.tar.gz sudo mv mitmproxy mitmdump mitmweb /usr/bin 详情 https://ger ...