对于数据库来说,最常用的操作恐怕就是查询了,各种复杂查询经常为搞的我们筋疲力尽。当然,这都不算什么。但是,对于一些多表查询,我们往往会没有头绪,不知道该如何操作。下面我就给大家推荐一种非常好用非常牛掰的查询技术:WITH

怎么用呢?with的作用其实很简单,就是把with引导的语句看做一张临时表。

废话不多说,直接上例子吧!


例:查询出每个部门工资最高的雇员编号,雇员姓名,雇员薪资,雇佣日期,所在部门编号,所在部门名称,并按照部门编号排序


来吧,朋友们,想一想如果利用我们学过的什么子查询,多表联查该如何写SQL语句呢???

哦,好吧!是不是感觉很麻烦,下面我用with语句来写SQL语句:


with e as

( select deptno dno,max(sal) max_sal from emp group by deptno)

select m.empno,m.ename,m.sal,m.hiredate,d.deptno,d.dname from e,emp m,dept d

where e.dno=m.deptno and m.deptno=d.deptno and e.max_sal=m.sal

order by d.deptno;


看懂了吗小伙伴们?