? 數據中的連接 join 分為內連接、自然連接、外連接,外連接又分為左外連接、右外連接、全外連接。
?
???????????
? 當然,這些分類都是在連接的基礎上,是從兩個表中記錄的笛卡爾積中選取滿足連接的記錄。笛卡爾積簡單的說就是一個表里的記錄要分別和另外一個表的記錄匹配為一條記錄,即如果表 A 有 3 條記錄,表 B 也有三條記錄,經過笛卡爾運算之后就應該有 3*3 即 9 條記錄。如下表:
?
? 自然連接(natural join)
? 自然連接是一種特殊的等值連接,他要求兩個關系表中進行比較的必須是相同的屬性列,無須添加連接條件,并且在結果中消除重復的屬性列。
??? sql語句:Select …… from 表 1 natural join 表 2
??? 結果:
?
??? 內連接(inner? join)
? 內連接基本與自然連接相同,不同之處在于自然連接奧球是同名屬性列的比較,而內連接則不要求兩屬性列同名,可以用 using 或 on 來指定某兩列字段相同的連接條件。
? sql語句: Select …… from 表 1 inner join 表 2 on 表 1.A= 表 2.E
??? 結果:
?
? 自然連接時某些屬性值不同則會導致這些元組會被舍棄,那如何保存這些會被丟失的信息呢,外連接就解決了相應的問題。外連接分為左外連接、右外連接、全外連接。外連接必須用 using 或 on 指定連接條件。
?
? 左外連接(left outer join)
? 左外連接是在兩表進行自然連接,只把左表要舍棄的保留在結果集中,右表對應的列上填 null 。
??? sql語句:Select …… from 表 1 left outer join 表 2 on 表 1.C= 表 2.C
結果:
?
?
?? 右外連接(rignt outer join)
? 右外連接是在兩表進行自然連接,只把右表要舍棄的保留在結果集中,左表對應的列上填 null 。
? Select …… from 表 1 rignt outer join 表 2 on 表 1.C= 表 2.C
? 結果:
?
? 全外連接(full join)
? 全外連接是在兩表進行自然連接,只把左表和右表要舍棄的都保留在結果集中,相對應的列上填 null 。
? Select …… from 表 1 full join 表 2 on 表 1.C= 表 2.C
? 結果:
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
