查詢時顯示多張表資料
例:查詢每個員工的編號,姓名,職位部門名字,和部門位置。
思路: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 則兩個集合的笛卡爾積為。在資料庫中,如果直接查詢倆張表,那麼其查詢結果就...