MySQL的左連接、右連接、內連接用法解讀
一、寫法
1.左連接:
SELECT student.Sno,Sname,Ssex,Sbirth,Sclass,Cno,Grade FROM student LEFT OUTER JOIN sc ON student.Sno=sc.Sno;
2.右連接:
SELECT student.Sno,Sname,Ssex,Sbirth,Sclass,Cno,Grade FROM sc RIGHT OUTER JOIN student ON student.Sno=sc.Sno;
3.內連接:
SELECT student.Sno,Sname,Ssex,Sbirth,Sclass,Cno,Grade FROM student INNER JOIN sc ON student.Sno=sc.Sno;
二、基礎表位置不同
1.左連接:
LEFT OUTER JOIN左邊的為基礎表,基礎表為student,從sc中查找符合ON后條件的記錄與LEFT OUTER JOIN左邊的student表中對應記錄進行連接,對于查找不到的記錄LEFT OUTER JOIN左邊的student表中對應記錄屬性值用NULL填充。
即使右表sc中沒有匹配的記錄,也從左表student返回所有的行,沒匹配的屬性值為NULL

2.右連接:
LEFT OUTER JOIN右邊的為基礎表,基礎表為student,從sc中查找符合ON后條件的記錄與LEFT OUTER JOIN右邊的student表中對應記錄進行連接,對于查找不到的記錄LEFT OUTER JOIN右邊的student表中對應記錄屬性值用NULL填充

3.內連接:
只返回匹配的值,無匹配值返回空值(相當于取交集)
三、如下所示

通過左連接獲取數據,以左表為基礎,顯示左表所有記錄,而右表中數據只顯示與關聯條件相匹配的記錄,不匹配的屬性值以NULL填充(LEFT JOIN等價于LEFT OUTER JOIN)

通過右連接獲取數據,以右表為基礎,顯示右表所有記錄,而左表中數據只顯示與關聯條件相匹配的記錄,不匹配的屬性值以NULL填充

總結
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Mysql5.7忘記root密碼及mysql5.7修改root密碼的方法
這篇文章主要介紹了Mysql5.7忘記root密碼及mysql5.7修改root密碼的方法的相關資料,需要的朋友可以參考下2016-01-01
MySQL性能優(yōu)化之max_connections配置參數淺析
這篇文章主要介紹了MySQL性能優(yōu)化之max_connections配置參數淺析,本文著重講解了3種配置max_connections參數的方法,需要的朋友可以參考下2014-07-07
Mysql中自定義函數的創(chuàng)建和執(zhí)行方式
這篇文章主要介紹了Mysql中自定義函數的創(chuàng)建和執(zhí)行方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03
ERROR 1045 (28000): Access denied for user ''''root''''@''''
這篇文章主要介紹了Linux下數據庫報ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)實用解決方案,希望能對大家有幫助。2017-10-10

