共計 1468 個字符,預計需要花費 4 分鐘才能閱讀完成。
自動寫代碼機器人,免費開通
丸趣 TV 小編給大家分享一下 sql 語句中左外連接、右外連接、內連接是什么,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
以下的代碼演示均基于 name 表和 country 表展開。
name 表
idname1 西施 2 楊玉環 3 貂蟬 4 王昭君 5 趙飛燕
country 表
idcountryA_ID1 春秋時期越國人 12 唐代蒲州永樂人 23 東漢末年山西忻州人 34 西漢時期南郡秭歸人 45 戰國時期 6
注:
1)b 表 A_ID 與 a 表 a_id 存在關系
2)連接查詢是要使用關聯條件去除不匹配數據否則會出現笛卡爾積
1)內連接
語法:select 要查詢的字段 from 表名 1 inner join 表名 2 on 表 1. 字段 = 表 2. 字段;
inner join 可簡寫為 逗號,內連接特點:只會保留完全符合 on 后條件的數據
應用場景:如果兩張表有外鍵關系可以使用內鏈接,因為通過內鏈接每一條只能返回單條記錄
select * from name n inner join country c on n.id = c.N_ID;
idnameidcountryN_ID1 西施 1 春秋時期越國人 12 楊玉環 2 唐代蒲州永樂人 23 貂蟬 3 東漢末年山西忻州人 34 王昭君 4 西漢時期南郡秭歸人 4
2)左外連接
語法:select 要查詢的字段 from 表 1 left outer join 表 2 on 表 1. 字段 = 表 2. 字段;
outer 可省略
左外連接特點:以左表為主,會保留左表中不符合 on 后條件的數據
應用場景:只有部分記錄可以從表 2 中查到,但表 1 想要顯示所有記錄,就可以和表 2 通過左外連接查詢。
select * from name n left join country c on n.id=c.N_ID;
idnameidcountryN_ID1 西施 1 春秋時期越國人 12 楊玉環 2 唐代蒲州永樂人 23 貂蟬 3 東漢末年山西忻州人 34 王昭君 4 西漢時期南郡秭歸人 45 趙飛燕 nullnullnull
3)右外連接
語法:select * from 表 1 right outer join 表 2 on 表 1. 字段 = 表 2. 字段;
outer 可省略
右外連接特點:以右表為主,會保留右表中不符合 on 后條件的數據
應用場景:和左外連接相反
只有部分記錄可以從表 1 中查詢到,但表 2 想要顯示所有記錄, 就可以和表 1 通過右外連接查詢。
select * from name n right join country c on n.id=c.N_ID;
idnameidcountryN_ID1 西施 1 春秋時期越國人 12 楊玉環 2 唐代蒲州永樂人 23 貂蟬 3 東漢末年山西忻州人 34 王昭君 4 西漢時期南郡秭歸人 4nullnull5 戰國時期 6
4)完全鏈接
語法:select * from 表 1 full join 表 2 on 表 1. 字段 = 表 2. 字段; 完全連接特點:會保留表 1 和表 2 的全部數據
select * from name n full join country c on n.id=c.N_ID;
idnameidcountryN_ID1 西施 1 春秋時期越國人 12 楊玉環 2 唐代蒲州永樂人 23 貂蟬 3 東漢末年山西忻州人 34 王昭君 4 西漢時期南郡秭歸人 45 趙飛燕 nullnullnullnullnull5 戰國時期 6
注意:該語法在 MySql 中不適
看完了這篇文章,相信你對“sql 語句中左外連接、右外連接、內連接是什么”有了一定的了解,如果想了解更多相關知識,歡迎關注丸趣 TV 行業資訊頻道,感謝各位的閱讀!
向 AI 問一下細節