oracle 多表連接查詢 join


簡介:

多表連接查詢通過表之間的關聯字段,一次查詢多表數據。

下面將依次介紹 多表連接中的如下方法:

1、from a,b

2、inner join

3、left outer join

4、right outer join

二、例子:

以下采用oracle的scott用戶中的兩張表dept和emp舉例,

兩個表的deptno字段關聯。

表結構如下:

(1)、dept(部門表)

(2)、emp(雇員表)

1、from 表1,表2

語法:select a.x,b.y from a,b where a.id=b.id;

實例:

返回所有滿足where條件的行

select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a, scott.dept b where a.deptno = b.deptno;

結果:

2、inner join

語法:select a.x from a inner join b on a.id=b.id;

inner 可以省略.

實例:

select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a join scott.dept b on a.deptno = b.deptno ;

結果同上。

3、left outer join

查詢結果除了返回包含連接條件的行,還包含左表(a)中不滿足連接條件的行,

其中不滿足連接條件的行中b表的字段值將被置為空。

語法:select a.x from a inner left outer join b on a.id=b.id;

outer 可以省略.

實例:

 select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a left outer join scott.dept b on a.deptno = b.deptno

結果:

當查詢中出現過濾條件時:

1)當連接條件后面有where條件時:

 select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a left outer join scott.dept b on a.deptno = b.deptno where b.dname like 'SALES'

解釋:先根據連接條件a.deptno = b.deptno查詢,再對查詢結果按過濾條件查詢。

結果:

2)當連接條件后面有and條件時:

 select a.empno as 員工編號, a.ename as 員工名稱, b.dname as 部門 from scott.emp a left outer join scott.dept b on (a.deptno = b.deptno and b.dname like 'SALES')

解釋:先對b表按過濾條件查詢,再對結果執行左連接查詢。

結果:

 

4 、right outer join 

查詢結果除了返回包含連接條件的行,還包含右表(b)中不滿足連接條件的行,

其中不滿足連接條件的行中a表的字段值將被置為空。

語法:select a.x from a inner right outer join b on a.id=b.id;

outer 可以省略.

實例和結果略。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM