多表查詢首先要避免笛卡爾集,要避免笛卡爾集,那麼查詢條件不得少於表的個數-1.
1.顯示雇員名,雇員工資以及雇員所在的部門:
2.顯示部門號為10的部門名、員工名和工資:
3.顯示各個雇員的姓名,工資以及工資的級別:
4.顯示雇員名,雇員工資及所在部門的名字,並按部門排序
**<喎?http://www.Bkjia.com/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMiBpZD0="自連接">自連接
**
5.顯示出FORD的上級領導名稱:
6.顯示工資比部門30的所有員工的工資高的員工的姓名、工資和部門號:
7.顯示工資比部門30的任意一個員工的工資高的員工姓名、工資和部門號:
8.查詢與SMITH的部門和崗位完全相同的所有雇員:
9.顯示出工資高於自己所在部門平均工資的所有雇員信息:
思路:先查出各個部門的平均工資和部門編號,再把把查詢的結果看作是一張表。
select * from emp e,(select deptno,avg(sal) as avgsal from emp group by deptno) avg_sal where e.deptno=avg_sal.deptno and e.sal>avg_sal.avgsal;
**
總結
**
當在from子句中使用子查詢時,該子查詢會被作為一個視圖來對待,因此叫做內嵌視圖,當在from子句中使用子查詢時,必須給 子查詢指定別名,給子查詢指定別名不使用as,給列指定別名要使用as。