oracle----連線查詢
連線查詢包括:內連線1種,外連線3種
內連線:
inner join on (inner 可以省略不寫)
select *
from 表1
inner join 表2
on 表1.欄位1 = 表2.欄位1 and 表1.欄位2 = 表2.欄位2
select *
from emp e
join dept d
on e.deptno = d.deptno
where sal > 2000;
--笛卡爾積(oracle寫法)
select e.*,d.dname,d.loc
from emp e,dept d
where e.deptno = d.deptno;
外連線:
1、左外連線
select *
from 表1 --主表
left join 表2 --從表
on 表1.欄位1 = 表2.欄位1 and 表1.欄位2 = 表2.欄位2
select *
from emp e
left join dept d
on e.deptno = d.deptno;
--笛卡爾積(oracle寫法)
select e.*,d.dname,d.loc
from emp e,dept d
where e.deptno = d.deptno(+); --+代表從表
2、右外連線
select *
from 表1 --主表
right join 表2 --從表
on 表1.欄位1 = 表2.欄位1 and 表1.欄位2 = 表2.欄位2
select *
from emp e
right join dept d
on e.deptno = d.deptno;
--笛卡爾積(oracle寫法)
select e.*,d.dname,d.loc
from emp e,dept d
where e.deptno(+)= d.deptno; --+代表從表
3、全外連線(沒有從表)
select *
from 表1
full join 表2
on 表1.欄位1 = 表2.欄位1 and 表1.欄位2 = 表2.欄位2
select *
from emp e
full join dept d
on e.deptno = d.deptno;
連線方法有:等值連線,雜湊連線,排序合併,巢狀迴圈
oracle查詢連線
select from emp select from dept 左連線 1 查詢與左邊表dept 4 相關聯的資料,如deptno 40在右邊沒有對應的資料,則顯示為空 select from dept left join emp on dept.deptno emp.deptno 查詢與左邊表相...
Oracle連線查詢
1 內連線 select e.d.dname from emp e,dept d where e.deptno d.deptno 隱式內連線查詢實際的語句可以為 select e.d.dname from emp e inner join dept d on d.deptno e.deptno 2 ...
oracle連線查詢
8i create table dali.test1 a int,b int create table dali.test2 a int,b int insert into dali.test1 values 1,456 insert into dali.test1 values 2,427 ins...