mysql join操作詳解

2021-07-15 23:31:12 字數 1845 閱讀 3621

除了常用的兩個表連線之外,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

email

1admin

[email protected]小明

[email protected]

3jack

[email protected]

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 ...