圖解5種Join連接及實(shí)戰(zhàn)案例!(inner/ left/ right/ full/ cross)
Join 連接在日常開發(fā)用得比較多,但大家都搞清楚了它們的使用區(qū)別嗎??一文帶你上車~~
內(nèi)連接 inner join
內(nèi)連接是基于連接謂詞將倆張表(如A和B)的列組合到一起產(chǎn)生新的結(jié)果表,在表中存在至少一個(gè)匹配時(shí),INNER JOIN 關(guān)鍵字返回行。
下面是一個(gè)簡單的使用案例
以下是運(yùn)行代碼及結(jié)果
左外連接 left join
左外連接Left join關(guān)鍵字會從左表那里返回所有的行,即使是在右表中沒有匹配到的行
下面是一個(gè)簡單的案例
下面是測試用例
右外連接 right join
右外連接關(guān)鍵字Right join會從右表那里返回所有的行,即使是在左表中沒有匹配到的行
下面是一個(gè)簡單的案例
下面是運(yùn)行及其結(jié)果
全連接 full join
全連接的關(guān)鍵字Full join,只要其中某個(gè)表中存在匹配,F(xiàn)ull join 就會返回行
下面是一個(gè)簡單的案例
以下是運(yùn)行及結(jié)果
注意一點(diǎn) mysql中是不支持Full join 的但是orcal等數(shù)據(jù)庫是支持的。
如果在mysql要使用Full join就會報(bào)以下錯(cuò)誤
解決辦法:同時(shí)使用左連接和右連接
以下是一個(gè)簡單的例子
交叉連接 cross join
交叉連接一般使用的比較少,交叉連接又稱笛卡爾連接或者叉乘連接,如果,A和B是倆個(gè)集合,他們的交叉連接就是A*B
以下是一個(gè)簡單的案例
https://blog.csdn.net/u013412790/article/details/51626307