MySQL的左連接、右連接、內(nèi)連接用法解讀
一、寫法
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.內(nèi)連接:
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.內(nèi)連接:
只返回匹配的值,無匹配值返回空值(相當于取交集)
三、如下所示

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

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

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
利用mycat實現(xiàn)mysql數(shù)據(jù)庫讀寫分離的示例
本篇文章主要介紹了利用mycat實現(xiàn)mysql數(shù)據(jù)庫讀寫分離的示例,mycat是最近很火的一款國人發(fā)明的分布式數(shù)據(jù)庫中間件,它是基于阿里的cobar的基礎上進行開發(fā)的,有一定的參考價值,感興趣的小伙伴們可以參考一下2018-03-03
MySQL數(shù)據(jù)同步出現(xiàn)Slave_IO_Running:?No問題的解決
本人最近工作中遇到了Slave_IO_Running:NO報錯的情況,通過查找相關資料終于解決了,下面這篇文章主要給大家介紹了關于MySQL數(shù)據(jù)同步出現(xiàn)Slave_IO_Running:?No問題的解決方法,需要的朋友可以參考下2023-05-05
MySQL數(shù)據(jù)庫的索引原理與慢SQL優(yōu)化的5大原則
這篇文章主要介紹了MySQL數(shù)據(jù)庫的索引原理與慢SQL優(yōu)化的5大原則,包括:建立索引的原則,慢查詢優(yōu)化基本步驟,慢查詢優(yōu)化案例,explain使用,需要的朋友可以參考下2023-02-02
Ubuntu18.0.4下mysql 8.0.20 安裝配置方法圖文教程
這篇文章主要為大家詳細介紹了Ubuntu18.0.4下mysql 8.0.19 安裝配置方法圖文教程,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-05-05

