1. 程式人生 > >Oracle 多表查詢

Oracle 多表查詢

com span image 使用 eight round 外連接 src 技術

多表查詢

1.1內連接
一般使用INNER JOIN關鍵字指定內連接,INNER可以省略,默認表示內連接。查詢結果中只包含兩表的公共字段值相等的行,列可以是兩表中的任意列

1.2外連接查詢
包括左外連接、右外連接、全外連接

(1)左外連接 LEFT JOIN
結果集中包括兩表連接後滿足ON後面指定的連接條件的行,還顯示JOIN關鍵字左側表中所有滿足檢索條件的行,如何左表的某行在右表中沒有匹配行,則在結果中,右表的所有選擇列均為NULL。

(2)右外連接 RIGHT JOIN
是左外連接的反向連接。

(3)完全外連接 FULL JOIN
完全外連接查詢的結果集包括兩表內連接的結果集和左表與右表中不滿足條件的行。

技術分享圖片 技術分享圖片

下面使用emp和dept表進行多表查詢:

1 select ename,dname
2 from emp
3 where ename=SMITH

執行結果:

技術分享圖片

改成:

1 select ename,(select dname from dept where deptno=20) as 部門   
2 from emp
3 where ename=SMITH

若不知道SMITH在20號部門,則要改成

1 select ename,(select dname from dept where deptno=select deptno from emp where ename=
SMITH)) as 部門

執行結果:

技術分享圖片

多表查詢

1、內連接
一般使用INNER JOIN關鍵字指定內連接,INNER可以省略,默認表示內連接。查詢結果中只包含兩表的公共字段值相等的行,列可以是兩表中的任意列

1 select enme,dname
2 from emp,dept
3 where emp.deptmo=dept.deptno and emp.ename=SMITH

2、外連接

Oracle 多表查詢