MySQL內聯和外聯查詢


內連:

內連接是通過在查詢中設置連接條件的方式,來移除查詢結果集中某些數據行后的交叉連接。簡單來說,就是利用條件表達式來消除交叉連接的某些數據行。

MySQL FROM 子句中使用關鍵字 INNER JOIN 連接兩張表,並使用 ON 子句來設置連接條件。如果沒有任何條件,INNER JOIN 和 CROSS JOIN 在語法上是等同的,兩者可以互換。

語法格式如下:

SELECT <列名1,列名2 …>FROM <表名1> INNER JOIN <表名2> [ ON子句]

 

LEFT/RIGHT JOIN:外連接查詢

MySQL 中內連接是在交叉連接的結果集上返回滿足條件的記錄;而外連接先將連接的表分為基表和參考表,再以基表為依據返回滿足和不滿足條件的記錄。

外連接更加注重兩張表之間的關系。按照連接表的順序,可以分為左外連接和右外連接。

 

 

左連

左外連接又稱為左連接,在 FROM 子句中使用關鍵字 LEFT OUTER JOIN 或者 LEFT JOIN,用於接收該關鍵字左表(基表)的所有行,並用這些行與該關鍵字右表(參考表)中的行進行匹配,即匹配左表中的每一行及右表中符合條件的行。

在左外連接的結果集中,除了匹配的行之外,還包括左表中有但在右表中不匹配的行,對於這樣的行,從右表中選擇的列的值被設置為 NULL,即左外連接的結果集中的 NULL 值表示右表中沒有找到與左表相符的記錄。

 

SELECT <列名1,列名2 …>FROM <表名1>LEFT OUTER JOIN <表名2> [ ON子句]

 

右連

右外連接又稱為右連接,在 FROM 子句中使用 RIGHT OUTER JOIN 或者 RIGHT JOIN。與左外連接相反,右外連接以右表為基表,連接方法和左外連接相同。在右外連接的結果集中,除了匹配的行外,還包括右表中有但在左表中不匹配的行,對於這樣的行,從左表中選擇的值被設置為 NULL。

SELECT <列名1,列名2 …>FROM <表名1>RIGHT OUTER JOIN<表名2> [ ON子句]

 


免責聲明!

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



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