新聞中心

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


咨詢
建站咨詢
