MySQL表LEFT JOIN左連接與RIGHT JOIN右連接的實(shí)例教程
LEFT JOIN 語(yǔ)法用法與實(shí)例
MySQL LEFT JOIN 語(yǔ)法
SQL(MySQL) LEFT JOIN 會(huì)取得左表(table1)全部記錄,即使右表(table2)并無(wú)對(duì)應(yīng)匹配記錄。LEFT JOIN 基本語(yǔ)法如下:
... FROM table1 LEFT JOIN table2 ON condition ...
MySQL LEFT JOIN 用法實(shí)例
下面是兩個(gè)原始數(shù)據(jù)表:
article 文章表:

user 用戶表:

我們列出所有的文章及對(duì)應(yīng)的所屬用戶,即使沒有用戶的文章也列出。
SELECT ... LEFT JOIN ... ON 語(yǔ)句如下:
SELECT article.aid,article.title,user.username FROM article LEFT JOIN user ON article.uid = user.uid
返回查詢結(jié)果如下:

可以看出來(lái),與 INNER JOIN 明顯的區(qū)別是,左表記錄被全部取出,即使右表無(wú)對(duì)應(yīng)匹配記錄。
提示
這里所謂記錄被“全部”取出,是相對(duì)于 INNER JOIN 的限制來(lái)說(shuō)的。其實(shí)可以在上面的 SQL 語(yǔ)句后面加個(gè) WHERE 條件或者 LIMIT 等關(guān)鍵字以同一般 SQL 語(yǔ)句一樣對(duì)結(jié)果集做一個(gè)范圍限制。
IS NULL
在上面的例子中,對(duì)于右表中沒有對(duì)應(yīng)匹配的數(shù)據(jù)記錄,其所有的列都被置為 NULL,因此要查詢這部分記錄(如在上面例子中體現(xiàn)為查找 aid=4 這類無(wú)對(duì)應(yīng)用戶的文章記錄),可以附加 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 語(yǔ)法用法與實(shí)例
MySQL RIGHT JOIN 語(yǔ)法
SQL(MySQL) RIGHT JOIN 會(huì)取得右表(table2)全部記錄,即使左表(table2)并無(wú)對(duì)應(yīng)匹配記錄。RIGHT JOIN 基本語(yǔ)法如下:
... FROM table1 RIGHT JOIN table2 ON condition ...
MySQL RIGHT JOIN 用法實(shí)例
下面是兩個(gè)原始數(shù)據(jù)表:
article 文章表:

user 用戶表:

我們列出所有的用戶,以及他們可能擁有的文章。
SELECT ... RIGHT JOIN ... ON 語(yǔ)句如下:
SELECT article.aid,article.title,user.username FROM article RIGHT JOIN user ON article.uid = user.uid
返回查詢結(jié)果如下:

對(duì)比 LEFT JOIN 返回的查詢結(jié)果,RIGHT JOIN 返回的結(jié)果與其剛好“相反”。
IS NULL
在上面的例子中,對(duì)于左表中沒有對(duì)應(yīng)匹配的數(shù)據(jù)記錄,其所有的列都被置為 NULL,因此要查詢這部分記錄(如在上面例子中體現(xiàn)為查找 username=Jack 這類無(wú)對(duì)應(yīng)文章的所有用戶),可以附加 IS NULL 條件:
SELECT article.aid,article.title,user.username FROM article LEFT JOIN user ON article.uid = user.uid WHERE article.aid IS NULL
相關(guān)文章
MySQL刪除數(shù)據(jù)Delete與Truncate語(yǔ)句使用比較
在MySQL數(shù)據(jù)庫(kù)中,DELETE語(yǔ)句和TRUNCATE TABLE語(yǔ)句都可以用來(lái)刪除數(shù)據(jù),但是這兩種語(yǔ)句還是有著其區(qū)別的,下文就為您介紹這二者的差別所在2012-09-09
mysql 數(shù)據(jù)類型轉(zhuǎn)換的實(shí)現(xiàn)
這篇文章主要介紹了mysql 數(shù)據(jù)類型轉(zhuǎn)換的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02
mysql:Can''t start server: can''t create PID file: No space
這篇文章主要介紹了mysql啟動(dòng)失敗不能正常啟動(dòng)并報(bào)錯(cuò)Can't start server: can't create PID file: No space left on device問題解決方法,需要的朋友可以參考下2015-05-05
MySQL使用mysqldump實(shí)現(xiàn)數(shù)據(jù)完全備份
mysqldump是MySQL自帶的備份工具,可方便實(shí)現(xiàn)對(duì)MySQL的備份,也可以將指定的庫(kù)、表導(dǎo)出為SQL腳本,下面小編就來(lái)教大家如何使用mysqldump實(shí)現(xiàn)數(shù)據(jù)完全備份吧2023-07-07
MySQL的InnoDB擴(kuò)容及ibdata1文件瘦身方案完全解析
在使用InnoDB存儲(chǔ)引擎后,MySQL的ibdata1文件常常會(huì)占據(jù)大量存儲(chǔ)空間,這里我們就為大家?guī)?lái)MySQL的InnoDB擴(kuò)容及ibdata1文件瘦身方案完全解析:2016-06-06
MySQL中的數(shù)據(jù)類型binary和varbinary詳解
binary和varbinary與char和varchar類型有點(diǎn)類似,不同的是binary和varbinary存儲(chǔ)的是二進(jìn)制的字符串,而非字符型字符串。下面這篇文章主要給大家介紹了關(guān)于MySQL中數(shù)據(jù)類型binary和varbinary的相關(guān)資料,介紹的非常詳細(xì),需要的朋友可以參考學(xué)習(xí)。2017-07-07
深入mysql "ON DUPLICATE KEY UPDATE" 語(yǔ)法的分析
本篇文章是對(duì)mysql "ON DUPLICATE KEY UPDATE"語(yǔ)法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06

