... 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
聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com