1 select *from tablea inner join tableb2 on tablea.name =tableb.name
3id name id name
4 -- ---- -- ----
51 pirate 2
pirate
63 ninja 4
ninja78
9inner join
10產生的結果集中,是a和b的交集。
11venn diagram of sql inner join
12 select *from tablea full outer join tableb
13 on tablea.name =tableb.name
14id name id name
15 -- ---- -- ----
161 pirate 2
pirate
172 monkey null
null
183 ninja 4
ninja
194 spaghetti null
null
20null
null
1rutabaga
21null
null
3darth vader
2223
24full outer join 產生a和b的並集。但是需要注意的是,對於沒有匹配的記錄,則會以null做為值。
25venn diagram of sql cartesian join
26 select * from tablea left outer join tableb on tablea.name =tableb.name
27id name id name
28 -- ---- -- ----
291 pirate 2
pirate
302 monkey null
null
313 ninja 4
ninja
324 spaghetti null
null
3334
35left outer join 產生表a的完全集,而b表中匹配的則有值,沒有匹配的則以null值取代。
36venn diagram of sql left join
37 select * from tablea left outer join tableb on tablea.name = tableb.name where tableb.id is null
38id name id name
39 -- ---- -- ----
402 monkey null
null
414 spaghetti null
null
4243
44產生在a表中有而在b表中沒有的集合。
45 join-left-outer.png
46 select * from tablea full outer join tableb on tablea.name = tableb.name where tablea.id is null or tableb.id is null
47id name id name
48 -- ---- -- ----
492 monkey null
null
504 spaghetti null
null
51null
null
1rutabaga
52null
null
3darth vader
5354
SQL的各種連線Join詳解
sql join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同字段。最常見的 join 型別 sql inner join 簡單的 join sql left join sql right join sql full join,其中前一種是內連線,後三種是外鏈結。假設我們有兩張表,t...
SQL的各種連線Join詳解
sql join 子句用於把來自兩個或多個表的行結合起來,基於這些表之間的共同字段。最常見的 join 型別 sql inner join 簡單的 join sql left join sql right join sql full join,其中前一種是內連線,後三種是外鏈結。假設我們有兩張表,t...
也談SQL各種連線(JOIN)
最近公司在招人,同事問了幾個自認為資料庫可以的應聘者關於庫連線的問題,回答不盡理想 現在在這寫寫關於它們的作用 假設有如下表 乙個為投票主表,乙個為投票者資訊表 記錄投票人ip及對應投票型別,左右連線實際說是我們聯合查詢的結果以哪個表為準 1 如右接連 right join 或 right oute...