下面跟著筆者一起來(lái)了解下MySQL連接left join、right join、inner join有何區(qū)別,相信大家看完肯定會(huì)受益匪淺,文字在精不在多,希望mysql連接left join、right join、inner join有何區(qū)別這篇短內(nèi)容是你想要的。
創(chuàng)新互聯(lián)成立與2013年,先為湘潭縣等服務(wù)建站,湘潭縣等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為湘潭縣企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
A加油卡表:
id, userName, cardNo
1 aaa 111
2 bbb 111
3 aaa 222
B加油記錄表:
id, number, userName , cardNo,
1 1234 aaa 111
2 234 bbb 111
left join:
select * from B b left join A a on a.userName = b.userName where b.userName=aaa
由于上面sql中,on后面的條件,userName在A表中對(duì)應(yīng)多條,而不是對(duì)應(yīng)一條,結(jié)果集就是笛卡爾積。B表中的1條滿足剩余A表中的2條滿足。結(jié)果為2條。
select * from B b left join A a on a.userName = b.userName and a.cardNo = b.cardNo where b.userName=aaa
由于上面sql中,on后面的兩個(gè)條件在A表中只能找到一條唯一數(shù)據(jù),所以結(jié)果就是B表中有多少條數(shù)據(jù)滿足where,結(jié)果集就返回多少條數(shù)據(jù)。這里是返回一條數(shù)據(jù)
right join:
下面這個(gè)sql與上面的left join效果一樣:
select * from A a right join B b on a.userName = b.userName and a.cardNo = b.cardNo where b.userName=aaa
inner join:
select * from A a inner join B b on a.userName = b.userName and a.cardNo = b.cardNo where a.userName=aaa
還是首先看on后面的條件,如果A表中的一條數(shù)據(jù)對(duì)應(yīng)on的兩個(gè)條件在B中只有一條數(shù)據(jù),則返回滿足where條件的2條數(shù)據(jù)。
select * from B b inner join A a on a.userName = b.userName and a.cardNo = b.cardNo where a.userName=aaa
看完mysql連接left join、right join、inner join有何區(qū)別這篇文章后,很多讀者朋友肯定會(huì)想要了解更多的相關(guān)內(nèi)容,如需獲取更多的行業(yè)信息,可以關(guān)注我們的行業(yè)資訊欄目。