1. 程式人生 > >Oracle 多表查詢分析

Oracle 多表查詢分析

這兩張表可以直接利用DEPTNO欄位關聯,所以需要利用WHERE欄位來消除笛卡爾積

以上查詢是之前基礎的加強,有明確的關聯欄位,可是很多的查詢是不會明確給出關聯欄位

例:要求查詢每個僱員的編號,姓名,職位,基本工資,工資等級

| - 確定要使用的資料表,

EMP表:僱員的編號,姓名,職位,基本工資

salgrade表:工資等級

| - 確定已知的關聯欄位,

僱員與工資等級:emp.sal BETWEEN salgrade.losal and salgrade.hisal;

 

第一步:查詢出每個僱員的編號,姓名,職位,基本工資現只需一張EMP表即可:

第二部:增加salgrade表,增加了資料表之後就需要引入WHERE子句消除笛卡爾積

*確定所需要的資料表

| --emp表:編號,姓名,職位,基本工資

| --dept表:部門名稱

| --salgrade表:工資等級

*確定已知的關聯欄位:

| --emp.deptno = dept.deptno

| - 僱員與工資子集:

在salgrade.losal和salgrade.hisal之間的關係

第一步:編號,姓名,職位,基本工資

第二步:加入部門名稱,增加一個表就增加一個條件,消除笛卡爾積

第三步:加入工資等級資訊,與原始的消除笛卡爾積的條件應該同時滿足,所以使用和連線

直接套就行了,加個表則加個條件