MySQL JOIN 多表連接


除了常用的兩個表連接之外,SQL(MySQL) JOIN 語法還支持多表連接。多表連接基本語法如下:

1 ... FROM table1 INNER|LEFT|RIGHT JOIN table2 ON condition INNER|LEFT|RIGHTJOIN table3 ON condition ...

JOIN 多表連接實現了從多個表中獲取相關數據,下面是三個原始數據表:

article 文章表:
aid title content uid tid
1 文章1 文章1正文內容… 1 1
2 文章2 文章2正文內容… 1 2
3 文章3 文章3正文內容… 2 1
5 文章5 文章5正文內容… 4 1
user 用戶表:
uid username email
1 admin admin@5idev.com
2 小明 xiao@163.com
3 Jack jack@gmail.com
type 文章類型表:
tid typename
1 普通文章
2 精華文章
3 草稿

MySQL INNER JOIN 多表

我們使用 INNER JOIN 列出三個表中都具有關聯關系的數據:

1 SELECT article.aid,article.title,user.username,type.typename FROM articleINNER JOIN user
2 ON article.uid=user.uid INNER JOIN type ON article.tid=type.tid

返回查詢結果如下:

aid title username typename
1 文章1 admin 普通文章
2 文章2 admin 精華文章
3 文章3 小明 普通文章

MySQL LEFT JOIN 多表

使用 LEFT JOIN 三個表查詢:

1 SELECT article.aid,article.title,user.username,type.typename FROM articleLEFT JOIN user
2 ON article.uid=user.uid LEFT JOIN type ON article.tid=type.tid

返回查詢結果如下:

aid title username typename
1 文章1 admin 普通文章
2 文章2 admin 精華文章
3 文章3 小明 普通文章
4 文章4 NULL 普通文章

MySQL RIGHT JOIN 多表

使用 RIGHT JOIN 三個表查詢:

1 SELECT article.aid,article.title,user.username,type.typename FROM articleRIGHT JOIN user
2 ON article.uid=user.uid RIGHT JOIN type ON article.tid=type.tid

返回查詢結果如下:

aid title username typename
1 文章1 admin 普通文章
2 文章2 admin 精華文章
3 文章3 小明 普通文章
NULL NULL NULL 草稿

可見,在 RIGHT JOIN 右連接中,只是列出最后一個右連接表的所有數據。

說明

對於 MySQL 多表 JOIN,還可以 INNER、LEFT 和 RIGHT 混用,其返回結果與各關鍵字順序有關,感興趣可自行測試。


免責聲明!

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



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