Oracle 多表查詢分析
阿新 • • 發佈:2018-12-22
這兩張表可以直接利用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之間的關係
第一步:編號,姓名,職位,基本工資
第二步:加入部門名稱,增加一個表就增加一個條件,消除笛卡爾積
第三步:加入工資等級資訊,與原始的消除笛卡爾積的條件應該同時滿足,所以使用和連線
直接套就行了,加個表則加個條件