在上篇文章關於內連線的討論中,我們使用自連線查詢出所有人名以及他的上司的姓名,但是有乙個問題,king是整個機構下的老大,他沒有上司,在查詢結果中沒有顯示king。我們希望對於這樣的人員,也將他顯示在結果中,對應的上司顯示為空即可。對於這樣的要求,我們可以使用外連線實現。
外連線分為:左外連線,右外連線和全外連線。
使用左外連線實現:
也可以使用右外連線實現這個查詢:
左外連線或右外連線的查詢結果=內連線的結果+驅動表在匹配表中匹配不上的記錄和一條null記錄的組合。
在學習全外連線之前,我們先看看下面的兩個表中的資料:
可以看到部門40中沒有員工,而員工zhangsan還沒有分配部門。我們先使用左外連線查詢所有人名和所在部門名稱之間的對應關係:
可以看出左外連線只查詢出了所有人名,並沒有查詢出所有部門名稱。此時可以使用全外連線解決這個問題:
可以看到全外連線不但查詢出了沒有分配部門的員工zhangsan,還可以查詢出沒有員工的部門operations。
oracle的內連線 重點
內連線分為3種 等值連線 兩張表有描述共同屬性的列,常見形式為父表的主鍵和子表的外來鍵相等。非等值連線 可以用between and這樣的非等值運算子將兩張表中的列寫成乙個表示式。自連線 同一張表的列之間有關係實際反映的是同一張表的行之間有關係,通過給表起別名將同一張表的列之間的關係轉換成不同表的列...
Oracle外連線,左外連線,右外連線,內連線簡析
內連線即普通等值連線 select e.ename,e.job,e.sal,d.dname from emp e inner join dept d on e.deptno d.deptno where e.sal 2000 select e.ename e.job,e.sal d.dname fr...
oracle內連線 外連線
表testa,testb,testc,各有a,b兩列 a b001 10a002 20a a b 001 10b 003 30b a b001 10c004 40c 連線分為兩種 內連線與外連線。a 內連線 內連線,即最常見的等值連線,例 select fromtesta,testb wherete...