除了常用的兩個表連線之外,sql(mysql) join 語法還支援多表連線。多表連線基本語法如下:
... from table1 inner|left|right join table2 on condition inner|left|right join table3 on condition ...join 多表連線實現了從多個表中獲取相關資料,下面是三個原始資料表:
article 文章表:
aidtitle
content
uidtid
1文章1
文章1正文內容...11
2文章2
文章2正文內容...12
3文章3
文章3正文內容...21
5文章5
文章5正文內容...41
user 使用者表:
uidusername
1admin
3jack
type 文章型別表:
tidtypename
1普通文章
2精華文章3草稿
我們使用 inner join 列出三個表中都具有關聯關係的資料:
select article.aid,article.title,user.username,type.typename from article inner join user返回查詢結果如下:on article.uid=user.uid inner join type on article.tid=type.tid
aidtitle
username
typename
1文章1
admin
普通文章
2文章2
admin
精華文章
3文章3
小明普通文章
使用 left join 三個表查詢:
select article.aid,article.title,user.username,type.typename from article left join user返回查詢結果如下:on article.uid=user.uid left join type on article.tid=type.tid
aidtitle
username
typename
1文章1
admin
普通文章
2文章2
admin
精華文章
3文章3
小明普通文章
4文章4
null
普通文章
使用 right join 三個表查詢:
select article.aid,article.title,user.username,type.typename from article right join user返回查詢結果如下:on article.uid=user.uid right join type on article.tid=type.tid
aidtitle
username
typename
1文章1
admin
普通文章
2文章2
admin
精華文章
3文章3
小明普通文章
null
null
null草稿
可見,在 right join 右連線中,只是列出最後乙個右連線表的所有資料。
MySQL JOIN 多表連線
除了常用的兩個表連線之外,sql mysql join 語法還支援多表連線。多表連線基本語法如下 from table1 inner left right join table2 on condition inner left right join table3 on condition join ...
mysql join實現演算法
mysql join join是sql中非常重要的運算子,8.0版本之前的mysql只支援一種join演算法 nested loop join 巢狀迴圈連線 nested loop join有三種實現方式 nested loop join,index nested loop join,block n...
mysql join連線查詢
hash join 雜湊連線 sort merge join 合併排序連線 join的連線方式的的選擇 阿里sql軍規 強制 超過三個表禁止join。需要join的字段,資料型別必須絕對一致 多表關聯查詢時,保證被關聯的字段需要有索引。說明 即使雙表join也要注意表索引,sql效能。nested ...