數(shù)據(jù)中的連接join分為內(nèi)連接、自然連接、外連接,外連接又分為左外連接、右外連接、全外連接
當(dāng)然,這些分類都是在連接的基礎(chǔ)上,是從兩個(gè)表中記錄的笛卡爾積中選取滿足連接的記錄。笛卡爾積簡單的說就是一個(gè)表里的記錄要分別和另外一個(gè)表的記錄匹配為一條記錄,即如果表A有3條記錄,表B也有三條記錄,經(jīng)過笛卡爾運(yùn)算之后就應(yīng)該有3*3即9條記錄。
自然連接(natural join)
自然連接是一種特殊的等值連接,他要求兩個(gè)關(guān)系表中進(jìn)行比較的必須是相同的屬性列,無須添加連接條件,并且在結(jié)果中消除重復(fù)的屬性列。
sql語句:Select …… from 表1 natural join 表2
內(nèi)連接(inner join)
內(nèi)連接基本與自然連接相同,不同之處在于自然連接要求是同名屬性列的比較,而內(nèi)連接則不要求兩屬性列同名,可以用using或on來指定某兩列字段相同的連接條件。
sql語句:Select …… from 表1 inner join 表 2 on 表1.A=表2.E
自然連接時(shí)某些屬性值不同則會導(dǎo)致這些元組會被舍棄,那如何保存這些會被丟失的信息呢,外連接就解決了相應(yīng)的問題。外連接分為左外連接、右外連接、全外連接。外連接必須用using或on指定連接條件。
左外連接(left outer join)
左外連接是在兩表進(jìn)行自然連接,只把左表要舍棄的保留在結(jié)果集中,右表對應(yīng)的列上填null。
sql語句:Select …… from 表1 left outer join 表2 on 表1.C=表2.C
右外連接(rignt outer join)
右外連接是在兩表進(jìn)行自然連接,只把右表要舍棄的保留在結(jié)果集中,左表對應(yīng)的列上填null。
Select …… from 表1 rignt outer join 表2 on 表1.C=表2.C
全外連接(full join)
全外連接是在兩表進(jìn)行自然連接,只把左表和右表要舍棄的都保留在結(jié)果集中,相對應(yīng)的列上填null。
Select …… from 表1 full join 表2 on 表1.C=表2.C








暫無數(shù)據(jù)