欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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