Mysql高級查詢 內連接和外連接詳解


一、內連接(INNER JOIN)

1、等值連接

概述:指使用等號"="比較兩個表的連接列的值,相當於兩表執行笛卡爾后,取兩表連結列值相等的記錄。

語法

SELECT 列
FROM 表1 INNER JOIN 表2
ON 表1.列 = 表2.列

示例

 

SELECT A.*, B.*
FROM student_info A inner join student_score B
ON A.student_id = B.student_id

2、非等值連接

概述指使用大於號">"或小於號"<"比較兩個表的連接列的值,相當於兩表執行笛卡爾后,取一個表大於或小於另一個表的連結列值的記錄。

語法

SELECT 列
FROM 表1 INNER JOIN 表2
ON 表1.列 <> 表2.列

示例

 

SELECT A.*, B.*
FROM student_info A inner join student_score B
ON A.student_id > B.student_id

結果

二、外聯結

1、左外連接(LEFT OUTER JOIN)

概述:指將左表的所有記錄與右表符合條件的記錄,返回的結果除內連接的結果,還有左表不符合條件的記錄,並在右表相應列中填NULL。

示例

 

SELECT A.*, B.*
FROM student_info A left join student_score B
ON A.student_id = B.student_id

結果

 

3、全外連接(FULL JOIN)——MySQL不支持

概述:指將左表所有記錄與右表所有記錄進行連接,返回的結果除內連接的結果,還有左表與右表不符合條件的記錄,並在左表與右表相應列中填NULL。

 

三、自然連接(NATURAL JOIN

概述:指自動將表中相同名稱的列進行記錄匹配。

示例

SELECT A.*, B.*
FROM student_info A natural join student_score B


結果

四、自連接

概述:指用表的別名實現表自身的連接。

示例

 

SELECT B.*
FROM student_score A, student_score B
WHERE A.student_id = B.student_id
AND B.student_score > 80

結果

最后附上一張圖,此圖在手,天下我有

 

 

 

 

 
       


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM