MySQL_連表查詢


連表查詢

  連表查詢通常分為內連接和外連接。內連接就是使用INNER JOIN進行連表查詢;而外連接又分為三種連接方式,分別是左連接(LEFT JOIN)、右連接(RIGHT JOIN)、全連接(FULL JOIN)。下來我們一起來看一下這幾種連接方式的區別及基礎用法。

內連接

INNER JOIN

  INNER JOIN將只會返回相匹配的元素項,即不會返回結果為NULL的數據項。如下圖所示:

 

   INNER JOIN查詢的兩張表(A、B)的共有的部分,查詢結果為null的記錄不會出現。

外連接

  關鍵字OUTER是可選擇的,取決於具體語言,在實現上它們都是遵循標准的

LEFT JOIN

  關鍵字從左表(A)返回所有的行,即使右表(B)中沒有匹配。如果右表中沒有匹配,則結果為NULL。

 

  

  簡單來說就是不管右表(B)有沒有匹配到,都會完全輸出左表(A)的所有記錄,只是當右表的內容沒有匹配到時,則將右表對應的字段的內容設置為NULL。

  當然,對查詢的SQL語句稍加改動就可以實現只查詢A表中存在的記錄。比如說添加一個右表的key為NULL的篩選條件。

RIGHT JOIN

  關鍵字從右表(B)返回所有的行,即使左表(A)中沒有匹配。如果左表(A)中沒有匹配,則結果為 NULL。

   如左連接類似,不管左表(A)有沒有匹配到結果,都完全顯示右表(B)的所有記錄,將左表(A)沒有匹配到的字段值設為NULL。

   當然,也可以進行簡單的篩選得到只有右表(B)存在的記錄,設置左表中的key是NULL。

FULL JOIN

  關鍵字只要左表(A)和右表(B)其中一個表中存在匹配,則返回行。FULL OUTER JOIN 關鍵字結合了 LEFT JOIN 和 RIGHT JOIN 的結果。

 

  簡單來說就是只要兩張表(A、B)中任意一張表中存在匹配,則返回記錄,當然也可以簡單的篩選得到兩表中單獨存在的記錄。比例a.key is null or b.key is null。

 


免責聲明!

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



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