您好,登錄后才能下訂單哦!
下面跟著筆者一起來(lái)了解下mysql連接left join、right join、inner join有何區(qū)別,相信大家看完肯定會(huì)受益匪淺,文字在精不在多,希望mysql連接left join、right join、inner join有何區(qū)別這篇短內(nèi)容是你想要的。
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條滿(mǎn)足剩余A表中的2條滿(mǎn)足。結(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ù)滿(mǎn)足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ù),則返回滿(mǎn)足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è)資訊欄目。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。