MySQL內連接和外連接的區別:內連接會取出連接表中匹配到的數據,匹配不到的不保留;而外連接會取出連接表中匹配到的數據,匹配不到的也會保留,其值為NULL。
本教程操作環境:windows7系統、mysql8版本、Dell G3電腦。
內連接(inner join):取出連接表中匹配到的數據,匹配不到的不保留
外連接(outer join):取出連接表中匹配到的數據,匹配不到的也會保留,其值為NULL
示例表
users表
mysql>select*fromusers;+----+-------+|id|name|+----+-------+|1|john||2|May||3|Lucy||4|Jack||5|James|+----+-------+5rowsinset(0.00sec)
topics表
mysql>select*fromtopics;+----+---------------------------------------+---------+|id|title|user_id|+----+---------------------------------------+---------+|1|Helloworld|1||2|PHPisthebestlanguageintheworld|2||3|Laravelartist|6|+----+---------------------------------------+---------+3rowsinset(0.00sec)
示例
mysql>select*fromusersasuinnerjointopicsastonu.id=t.user_id;+----+------+----+---------------------------------------+---------+|id|name|id|title|user_id|+----+------+----+---------------------------------------+---------+|1|john|1|Helloworld|1||2|May|2|PHPisthebestlanguageintheworld|2|+----+------+----+---------------------------------------+---------+2rowsinset(0.00sec)
inner可以省略,as是給表起別名,也可以省略
mysql>select*fromusersujointopicstonu.id=t.user_id;+----+------+----+---------------------------------------+---------+|id|name|id|title|user_id|+----+------+----+---------------------------------------+---------+|1|john|1|Helloworld|1||2|May|2|PHPisthebestlanguageintheworld|2|+----+------+----+---------------------------------------+---------+2rowsinset(0.00sec)
以上兩句等價于
mysql>select*fromusers,topicswhereusers.id=topics.user_id;+----+------+----+---------------------------------------+---------+|id|name|id|title|user_id|+----+------+----+---------------------------------------+---------+|1|john|1|Helloworld|1||2|May|2|PHPisthebestlanguageintheworld|2|+----+------+----+---------------------------------------+---------+2rowsinset(0.00sec)
左外連接(left outer join):以左邊的表為主表
右外連接(right outer join):以右邊的表為主表
以某一個表為主表,進行關聯查詢,不管能不能關聯的上,主表的數據都會保留,關聯不上的以NULL顯示
通俗解釋就是:先拿出主表的所有數據,然后到關聯的那張表去找有沒有符合關聯條件的數據,如果有,正常顯示,如果沒有,顯示為NULL
示例
mysql>select*fromusersasuleftjointopicsastonu.id=t.user_id;+----+-------+------+---------------------------------------+---------+|id|name|id|title|user_id|+----+-------+------+---------------------------------------+---------+|1|john|1|Helloworld|1||2|May|2|PHPisthebestlanguageintheworld|2||3|Lucy|NULL|NULL|NULL||4|Jack|NULL|NULL|NULL||5|James|NULL|NULL|NULL|+----+-------+------+---------------------------------------+---------+5rowsinset(0.00sec)
等價于以下,只是字段的位置不一樣
mysql>select*fromtopicsastrightjoinusersasuonu.id=t.user_id;+------+---------------------------------------+---------+----+-------+|id|title|user_id|id|name|+------+---------------------------------------+---------+----+-------+|1|Helloworld|1|1|john||2|PHPisthebestlanguageintheworld|2|2|May||NULL|NULL|NULL|3|Lucy||NULL|NULL|NULL|4|Jack||NULL|NULL|NULL|5|James|+------+---------------------------------------+---------+----+-------+5rowsinset(0.00sec)
左外連接和右外連接是相對的,主要就是以哪個表為主表去進行關聯
到此,關于“mysql內連接和外連接有哪些區別”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注本站網站,小編會繼續努力為大家帶來更多實用的文章!
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖片)在生活中,很多人都不知道什么是淘寶特價版是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的什么是淘寶特價版相關的一些知識,我們一起來學習下吧!1、淘寶特價版是淘寶最新推出的小商品優惠購買平臺。平臺聚焦于低價商品,用戶能在app上購買到優惠低價的商品同時保證商品的質量。2、淘寶在過去幾年一直在“去爆款化”,爆款的盛行使得產品同質化,用戶購物體驗受到影響,淘寶鼓勵商家做精品店。然而...
最近小編看到大家都在討論殺手4血錢全部武器的獲得方法相關的事情,對此呢小編也是非常的感應興趣,那么這件事究竟是怎么發生的呢?具體又是怎么回事呢?下面就是小編搜索到的關于殺手4血錢全部武器的獲得方法事件的相關信息,我們一起來看一下吧!1、卡諾夫狙擊步槍。在“教學”關和“與魔鬼共舞”關。前者通關即可;后者在頂層女目標房間。(資料圖片僅供參考)2、KAZO-TRG狙擊步槍。在“雄雞謀殺”關,第二目標房間...
【資料圖】關于唐朝樂隊的主唱叫什么的知識大家了解嗎?以下就是小編整理的關于唐朝樂隊的主唱叫什么的介紹,希望可以給到大家一些參考,一起來了解下吧!1962年12月30日生于北京,早期參與組織多支樂隊。1978年,丁武考入北京市工藝美術學校美術系。1982年,丁武畢業后在北京132中任職美術老師,教學生美術基礎。1989 年以丁武為主,新成立不久的唐朝樂隊應邀參加了北京首都體育館舉辦的90現代音樂會,...