oracle 多表查詢 2018 8 3

2021-08-22 04:58:03 字數 1031 閱讀 9731

查詢時顯示多張表資料

例:查詢每個員工的編號,姓名,職位部門名字,和部門位置。

思路:1、查什麼

2、確定關聯字段(95%)

select empno,ename,job,dname,loc

from emp,dept

where emp.deptno=dept.deptno

;例:查詢員工的姓名,編號,基本工資,職位,領導姓名,部門名稱,位置。

思路: 1、查什麼

2、確定表 emp e emp m dept d

3、確定關聯字段 e.mgr=m.empno emp.deptno=dept.deptno

select e.ename,e.empno,e.sal,e.job,m.ename,d.dname,d.loc

from emp e,emp m,dept d

where e.mgr=m.empno

and d.deptno=e.deptno

;

cross join:交叉連線,產生笛卡爾積

select * from emp , dept;

select * from emp cross

join dept;

natural join:自然連線,自動找到匹配的關鍵字

select * from emp natural

join dept;

join …using :指定消除笛卡爾積的字段

select * from emp join dept using(deptno);

left|right |full [outer] join….on:左|右|全外連線

select * from emp left

join dept on emp.deptno=dept.deptno;

select * from emp full

join dept on emp.deptno=dept.deptno;

Oracle 多表查詢

sql 外連線 sql 按部門統計員工人數 部門號 部門名稱 人數 sql select d.deptno,d.dname,count e.empno 2 from dept d,emp e 3 where d.deptno e.deptno 4 group by d.deptno,d.dname ...

Oracle 多表查詢

等值和不等值連線查詢 為了避免笛卡爾集,可以在 where 加入有效的連線條件。oracle 連線多表查詢 在 where 子句中寫入連線條件。在表中有相同列時,在列名之前加上表名字首 select table1.column,table2.column from table1,table2 whe...

oracle 多表查詢

多表查詢 多表查詢,又稱表聯合查詢,即一條sql語句涉及到的表有多張,資料通過特定的連線進行聯合顯示.笛卡爾積 在數學中,兩個集合x和y的笛卡尓積 cartesian product 又稱直積,表示為x y.假設集合a 集合b 則兩個集合的笛卡爾積為。在資料庫中,如果直接查詢倆張表,那麼其查詢結果就...