掃二維碼與項(xiàng)目經(jīng)理溝通
我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流

創(chuàng)新互聯(lián)于2013年開(kāi)始,先為海拉爾等服務(wù)建站,海拉爾等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為海拉爾企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
MySQL聯(lián)表查詢可以說(shuō)是使用MySQL必須面對(duì)的問(wèn)題,而且在實(shí)際的工作中,使用比較多的查詢大概也是聯(lián)表查詢。雖然,經(jīng)常使用聯(lián)表查詢,但是你真的清楚其中的機(jī)制嗎?
帶著這個(gè)問(wèn)題,下面讓我們進(jìn)入本文的主題——圖說(shuō)MySQL的幾種join連接。
連接(join)就是將多個(gè)表中的字段根據(jù)匹配條件進(jìn)行橫向的拼接。
左表:在語(yǔ)法上位于join左邊的表,叫左表。
右表:在語(yǔ)法上位于join右邊的表,叫右表。
1、交差連接(cross join)
用左表中的每一行數(shù)據(jù)去匹配右表中的每一行數(shù)據(jù),且認(rèn)為全部匹配成功。最終的結(jié)果集是迪卡爾積。
語(yǔ)法:
select * from 左表 cross join 右表;
示例:
2、內(nèi)連接(inner join)
使用左表中的每一條記錄去匹配右表的所有的記錄,根據(jù)匹配的條件,如果成立,保留整條記錄,如果不成立則丟棄。
用文氏圖表示,則如下:
語(yǔ)法:
select * from 左表 【inner】 join 右表 【on 條件】
示例:
3、左連接(left join)
將左表作為主表,用主表中的每一條記錄,去匹配從表(右表)中的所有記錄,根據(jù)匹配的條件,如果成功則將主表的記錄中的字段與從表的記錄中的記錄,拼接成一條完整的記錄,放到結(jié)果集;如果不成功則將從表中的記錄中的字段全部置為null,保留主表中的字段。
用文氏圖表示,如下:
語(yǔ)法:
select * from 左表 left join 右表【on條件】
示例:
4、右連接(right join)
將右表作為主表,用主表中的每一條記錄,匹配從表中的所有記錄,根據(jù)匹配的條件,如果成功則將主表的記錄中的字段與從表的記錄中的記錄,拼接成一條完整的記錄,放到結(jié)果集。如果不成功則將從表中的記錄中的字段全部置為null,保留主表中的字段。
用文氏圖表示,如下:
語(yǔ)法:
select * from 左表 right join 右表【on條件】
示例:
5、自然連接(natural join)
對(duì)兩表進(jìn)行連接查詢時(shí),系統(tǒng)會(huì)盲目的用同名字段為匹配條件。會(huì)合并同名字段,并且將匹配字段放到結(jié)果集的前面。
然自然連接分為左自連接和右自然連接。
直接使用natural join連接主表和從表,相當(dāng)于內(nèi)連接
當(dāng)使用natural left join時(shí),相當(dāng)于左連接
當(dāng)使用natural right join時(shí),相當(dāng)于右連接
自然鏈接(natural join)
語(yǔ)法:
select * from 左表 natural join 右表
示例:
左自然連接(natural left join)
語(yǔ)法:
select * from 左表 natural left join 右表
示例:
右自然連接(natural right join)
語(yǔ)法:
select * from 左表 natural right join 右表
示例:

我們?cè)谖⑿派?4小時(shí)期待你的聲音
解答本文疑問(wèn)/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流