left join,right join,inner join,full join用法

[left join,right join,inner join,full join之間的區(qū)別]

sql中的連接查詢有inner join(內(nèi)連接)妻献、left join(左連接)瞬测、right join(右連接)、full join(全連接)四種方式恍涂,它們之間其實(shí)并沒(méi)有太大區(qū)別,僅僅是查詢出來(lái)的結(jié)果有所不同狸窘。
例如我們有兩張表:


這里寫(xiě)圖片描述

Orders表通過(guò)外鍵Id_P和Persons表進(jìn)行關(guān)聯(lián)饿肺。

1.inner join(內(nèi)連接),在兩張表進(jìn)行連接查詢時(shí)卷中,只保留兩張表中完全匹配的結(jié)果集裂七。

我們使用inner join對(duì)兩張表進(jìn)行連接查詢,sql如下:

SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p INNER JOIN Orders o ON p.Id_P=o.Id_P and 1=1  --用and連接多個(gè)條件 ORDER BY p.LastName

查詢結(jié)果集:


這里寫(xiě)圖片描述

此種連接方式Orders表中Id_P字段在Persons表中找不到匹配的仓坞,則不會(huì)列出來(lái)。

注意:?jiǎn)渭兊膕elect * from a,b是笛卡爾乘積腰吟。比如a表有5條數(shù)據(jù)无埃,b表有3條數(shù)據(jù),那么最后的結(jié)果有53=15條數(shù)據(jù)毛雇。*

但是如果對(duì)兩個(gè)表進(jìn)行關(guān)聯(lián):select * from a,b where a.id = b.id 意思就變了嫉称,此時(shí)就等價(jià)于:

select * from a inner join b on a.id = b.id。即就是內(nèi)連接灵疮。

但是這種寫(xiě)法并不符合規(guī)范织阅,可能只對(duì)某些數(shù)據(jù)庫(kù)管用,如sqlserver震捣。推薦最好不要這樣寫(xiě)荔棉。最好寫(xiě)成inner join的寫(xiě)法。

內(nèi)連接查詢 (select * from a join b on a.id = b.id) 與 關(guān)聯(lián)查詢 (select * from a , b where a.id = b.id)的區(qū)別

2.left join,在兩張表進(jìn)行連接查詢時(shí)蒿赢,會(huì)返回左表所有的行润樱,即使在右表中沒(méi)有匹配的記錄。

我們使用left join對(duì)兩張表進(jìn)行連接查詢羡棵,sql如下:

SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p LEFT JOIN Orders o ON p.Id_P=o.Id_P ORDER BY p.LastName

查詢結(jié)果如下:


這里寫(xiě)圖片描述

可以看到壹若,左表(Persons表)中LastName為Bush的行的Id_P字段在右表(Orders表)中沒(méi)有匹配,但查詢結(jié)果仍然保留該行。

3.right join,在兩張表進(jìn)行連接查詢時(shí)店展,會(huì)返回右表所有的行养篓,即使在左表中沒(méi)有匹配的記錄。

我們使用right join對(duì)兩張表進(jìn)行連接查詢赂蕴,sql如下:

SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p RIGHT JOIN Orders o ON p.Id_P=o.Id_P ORDER BY p.LastName

查詢結(jié)果如下:

這里寫(xiě)圖片描述

Orders表中最后一條記錄Id_P字段值為65柳弄,在左表中沒(méi)有記錄與之匹配,但依然保留睡腿。

4.full join,在兩張表進(jìn)行連接查詢時(shí)语御,返回左表和右表中所有沒(méi)有匹配的行。

我們使用full join對(duì)兩張表進(jìn)行連接查詢席怪,sql如下:

SELECT p.LastName, p.FirstName, o.OrderNo FROM Persons p FULL JOIN Orders o ON p.Id_P=o.Id_P ORDER BY p.LastName

查詢結(jié)果如下:


這里寫(xiě)圖片描述

查詢結(jié)果是left join和right join的并集应闯。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市挂捻,隨后出現(xiàn)的幾起案子碉纺,更是在濱河造成了極大的恐慌,老刑警劉巖刻撒,帶你破解...
    沈念sama閱讀 218,607評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件骨田,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡声怔,警方通過(guò)查閱死者的電腦和手機(jī)态贤,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)醋火,“玉大人悠汽,你說(shuō)我怎么就攤上這事〗娌担” “怎么了柿冲?”我有些...
    開(kāi)封第一講書(shū)人閱讀 164,960評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)兆旬。 經(jīng)常有香客問(wèn)我假抄,道長(zhǎng),這世上最難降的妖魔是什么丽猬? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,750評(píng)論 1 294
  • 正文 為了忘掉前任宿饱,我火速辦了婚禮,結(jié)果婚禮上宝鼓,老公的妹妹穿的比我還像新娘刑棵。我一直安慰自己,他們只是感情好愚铡,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布蛉签。 她就那樣靜靜地躺著胡陪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪碍舍。 梳的紋絲不亂的頭發(fā)上柠座,一...
    開(kāi)封第一講書(shū)人閱讀 51,604評(píng)論 1 305
  • 那天,我揣著相機(jī)與錄音片橡,去河邊找鬼妈经。 笑死,一個(gè)胖子當(dāng)著我的面吹牛捧书,可吹牛的內(nèi)容都是我干的吹泡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼经瓷,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼爆哑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起舆吮,我...
    開(kāi)封第一講書(shū)人閱讀 39,253評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤揭朝,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后色冀,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體潭袱,經(jīng)...
    沈念sama閱讀 45,702評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評(píng)論 3 336
  • 正文 我和宋清朗相戀三年锋恬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了屯换。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,015評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡与学,死狀恐怖趟径,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情癣防,我是刑警寧澤,帶...
    沈念sama閱讀 35,734評(píng)論 5 346
  • 正文 年R本政府宣布掌眠,位于F島的核電站蕾盯,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏蓝丙。R本人自食惡果不足惜级遭,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評(píng)論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望渺尘。 院中可真熱鬧挫鸽,春花似錦、人聲如沸鸥跟。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,934評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至枫匾,卻和暖如春架诞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背干茉。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,052評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工谴忧, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人角虫。 一個(gè)月前我還...
    沈念sama閱讀 48,216評(píng)論 3 371
  • 正文 我出身青樓沾谓,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親戳鹅。 傳聞我的和親對(duì)象是個(gè)殘疾皇子均驶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容