在数据库的查询过程中,可能经常要用到子查询的情况,用得较多的可能是嵌套子查询,最近查资料时发现还有另外一种方法,就是在from子句中使用子查询,也可以实现相同的效果,下面通过一个实例来讲讲这两种方法的使用。
问题:查询员工工资高于其所在部门平均工资的员工的信息
1.使用嵌套子查询的方法。
select * from Employee e1 where e1.salary> (select AVG(salary) from Employee e2 where e1.depId=e2.depId group by e2.depId )
2.在from子句中使用子查询。在from子句中使用子查询时,必须给子查询指定别名。
select e1.* from Employee e1,(select depId,avg(salary) avgsalary from Employee group by depName) e2 where e1.depId=e2.depId and e1.salary>e2.avgsalary