mysql 多表连接查询技巧
程序员文章站
2022-05-29 17:09:55
...
从一个表中检索与另一个表不相关的行
//一个员工表和一个部门表 查询没有员工的部门表 左外连接查询
select d.* from dept d
left outer join emp e on (d.deptno = e.deptno)
where e.deptno is null
//多表连接查询中会遇到 NULL的问题 not in 要查找的标识列中如果存在NULL 则 会出现错误 纠正方法用 exists 关键字解决 例如
select * from dept
where deptno not in (10,20,null) #即使deptno存在40 不在条件中也不会查出来
//因为 in 和not in 本质上是or 对于 deptno = 50
not in : not( deptno =10 or deptno = 20 or deptno = null)
not(false or true or null)
not(true or null)
null
//在比较中使用null
使用coalesce 函数 会把 null 转换为0
其实 coalesce函数 会从多个参数中从左往右返回 第一个不为null的数
//组合使用连接查询和聚合函数 重点
后续更新。。。
转载于:https://www.jianshu.com/p/0940ce3fc765