程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL表LEFT JOIN左連接與RIGHT JOIN右連接的實例教程,

MySQL表LEFT JOIN左連接與RIGHT JOIN右連接的實例教程,

編輯:MySQL綜合教程

MySQL表LEFT JOIN左連接與RIGHT JOIN右連接的實例教程,


LEFT JOIN 語法用法與實例
MySQL LEFT JOIN 語法
SQL(MySQL) LEFT JOIN 會取得左表(table1)全部記錄,即使右表(table2)並無對應匹配記錄。LEFT JOIN 基本語法如下:

... FROM table1 LEFT JOIN table2 ON condition ...

MySQL LEFT JOIN 用法實例
下面是兩個原始數據表:
article 文章表:

20151216115130281.png (641×129)

user 用戶表:

20151216115300000.png (638×103)

我們列出所有的文章及對應的所屬用戶,即使沒有用戶的文章也列出。
SELECT ... LEFT JOIN ... ON 語句如下:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user ON article.uid = user.uid

返回查詢結果如下:

20151216115324786.png (634×130)

可以看出來,與 INNER JOIN 明顯的區別是,左表記錄被全部取出,即使右表無對應匹配記錄。
提示
這裡所謂記錄被“全部”取出,是相對於 INNER JOIN 的限制來說的。其實可以在上面的 SQL 語句後面加個 WHERE 條件或者 LIMIT 等關鍵字以同一般 SQL 語句一樣對結果集做一個范圍限制。
IS NULL
在上面的例子中,對於右表中沒有對應匹配的數據記錄,其所有的列都被置為 NULL,因此要查詢這部分記錄(如在上面例子中體現為查找 aid=4 這類無對應用戶的文章記錄),可以附加 IS NULL 條件:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user 
ON article.uid = user.uid WHERE user.uid IS NULL

RIGHT JOIN 語法用法與實例
MySQL RIGHT JOIN 語法
SQL(MySQL) RIGHT JOIN 會取得右表(table2)全部記錄,即使左表(table2)並無對應匹配記錄。RIGHT JOIN 基本語法如下:

... FROM table1 RIGHT JOIN table2 ON condition ...

MySQL RIGHT JOIN 用法實例
下面是兩個原始數據表:
article 文章表:

20151216115403445.png (642×130)

user 用戶表:

20151216115453219.png (640×103)

我們列出所有的用戶,以及他們可能擁有的文章。
SELECT ... RIGHT JOIN ... ON 語句如下:

SELECT article.aid,article.title,user.username FROM article RIGHT JOIN user ON article.uid = user.uid

返回查詢結果如下:

20151216115512832.png (641×130)

對比 LEFT JOIN 返回的查詢結果,RIGHT JOIN 返回的結果與其剛好“相反”。
IS NULL
在上面的例子中,對於左表中沒有對應匹配的數據記錄,其所有的列都被置為 NULL,因此要查詢這部分記錄(如在上面例子中體現為查找 username=Jack 這類無對應文章的所有用戶),可以附加 IS NULL 條件:

SELECT article.aid,article.title,user.username FROM article LEFT JOIN user 
ON article.uid = user.uid WHERE article.aid IS NULL

您可能感興趣的文章:

  • mysql 左連接、右連接和內連接
  • MySQL中對表連接查詢的簡單優化教程
  • MySQL的LEFT JOIN表連接的進階學習教程
  • MySQL中基本的多表連接查詢教程

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved