mysql的左連接、右連接、內連接

王林
發布: 2019-08-23 15:14:38
轉載
2986 人瀏覽過

A加油卡表:

id, userName, cardNo 

1              aaa          #   bbb                   111

3              ##B加油記錄表: 

id, number,  userName ,  cardNo,  

1             1234             111

2             234             

# left join:

select * from B   b    left join  A a on a.userName = b.userName   where b.userName=aaa
登入後複製

由於上面sql中,on後面的條件,userName在A表中對應多條,而不是對應一條,結果集合就是笛卡爾積。 B表中的1條滿足剩餘A表中的2條滿足。結果為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後面的兩個條件在A表中只能找到一條唯一數據,所以結果就是B表中有多少條數據滿足where,結果集就回傳多少條數據。這裡是回傳一條資料

right join:

下面這個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表中的一條數據對應on的兩個條件在B中只有一條數據,則回傳滿足where條件的2條數據。

select * from B   b    inner  join  A a on a.userName = b.userName  and a.cardNo = b.cardNo  where a.userName=aaa
登入後複製

以上總結一條:看on後面的條件,在被關聯表中的資料是一條還是多條。

更多相關問題請訪問PHP中文網:mysql影片教學

#

以上是mysql的左連接、右連接、內連接的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:csdn.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!