除了我們在上面的例子中使用的 inner join(內連線),我們還可以使用其他幾種連線。
下面列出了您可以使用的 join 型別,以及它們之間的差異。
join: 如果表中有至少乙個匹配,則返回行
left join: 即使右表中沒有匹配,也從左表返回所有的行
right join: 即使左表中沒有匹配,也從右表返回所有的行
full join: 只要其中乙個表中存在匹配,就返回行
inner join(內連線)和自然連線一樣,交集資料
join連線**:
on後面的條件(on條件)和where條件的區別:
on條件:是過濾兩個鏈結表笛卡爾積形成中間表的約束條件。
where條件:在有on條件的select語句中是過濾中間表的約束條件。在沒有on的單錶查詢中,是限制物理表或者中間查詢結果返回記錄的約束。在兩表或多表連線中是限制連線形成最終中間表的返回結果的約束。
從這裡可以看出,將where條件移入on後面是不恰當的。推薦的做法是:
on只進行連線操作,where只過濾中間表的記錄。
union、intersect、except
舉例union(union all 不去重,查出雖偶有都展示):
select
rest.id
from ((select
id as id
from tbnicai
where 1=1
)union all
(select
id as id
from tbnicai
where 1=1)) as rest
希望所寫的你們能夠用到。
SQL多表連線
oracle8 select a.b.from a,b where a.id b.id 相當於左聯接 select a.b.from a,b where a.id b.id 相當於右聯接 oracle9 支援以上的寫法,還增加了leftjoin right join等 select a.b.from...
SQL多表連線
1.內連線 查詢兩張表共有部分 等值連線 語法 select from 表a inner join 表b on a.key b.key 2.左連線 把左邊表的內容全部查出,右邊表只查出滿足條件的記錄 語法 select from 表a left join 表b on a.key b.key 3.右連...
SQL多表連線查詢
本文主要列舉兩張和三張表來講述多表連線查詢。新建兩張表 表1 student 截圖如下 表2 course 截圖如下 此時這樣建表只是為了演示連線sql語句,當然實際開發中我們不會這樣建表,實際開發中這兩個表會有自己不同的主鍵。一 外連線 外連線可分為 左連線 右連線 完全外連線。1 左連線 lef...