日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

SQL语句值left join,right join,inner join的用法

發布時間:2023/12/18 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SQL语句值left join,right join,inner join的用法 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

sql語句中兩表連結方式主要有一下3中,需要注意的時在進行多表連結的時候必須要用 on 指定表中的某個字段作為連結的條件

left join(左聯接) 返回包括左表中的所有記錄和右表中聯結字段相等的記錄 -----結果集的條目數以左表為準
right join(右聯接) 返回包括右表中的所有記錄和左表中聯結字段相等的記錄------結果集的條目數以右表為準
inner join(等值連接) 只返回兩個表中聯結字段相等的行------結果集的條目數為聯結字段相等的行數


看一下例子

Table_1

1??????? ??? ?t1?????? ??? ?張三?????? ??? ?男??????? ?
2??????? ??? ?t1?????? ??? ?小白?????? ??? ?女??????? ?
3??????? ??? ?t1?????? ??? ?王子?????? ??? ?男??????? ?
4??????? ??? ?t1?????? ??? ?王小?????? ??? ?女??????? ?
5??????? ??? ?t1?????? ??? ?李白?????? ??? ?男??????? ?
6??????? ??? ?t1?????? ??? ?趙虎?????? ??? ?男??????? ?
7??????? ??? ?t1?????? ??? ?張果?????? ??? ?女????????


-----------------------------------------------------------------------------------------

Table_2

1??????? ??? ?t2?????? ??? ?王五?????? ?
2??????? ??? ?t2?????? ??? ?小五?????? ?
4??????? ??? ?t2?????? ??? ?王五?????? ?
5??????? ??? ?t2?????? ??? ?趙雪?????? ?
8??????? ??? ?t2?????? ??? ?張龍???????
??

------------------------------------------------------------------------------------------

left join

select * from Table_1 left join Table_2 on Table_1.ID = Table_2.ID

結果是:

1??????? ??? ?t1?????? ??? ?張三?????? ??? ?男??????? ??? ?1??????? ??? ?t2?????? ??? ?王五?????? ?
2??????? ??? ?t1?????? ??? ?小白?????? ??? ?女??????? ??? ?2??????? ??? ?t2?????? ??? ?小五?????? ?
3??????? ??? ?t1?????? ??? ?王子?????? ??? ?男??????? ??? ?NULL?? ?NULL?? ?NULL
4??????? ??? ?t1?????? ??? ?王小?????? ??? ?女??????? ??? ?4??????? ??? ?t2?????? ??? ?王五?????? ?
5??????? ??? ?t1?????? ??? ?李白?????? ??? ?男??????? ??? ?5??????? ??? ?t2?????? ??? ?趙雪?????? ?
6??????? ??? ?t1?????? ??? ?趙虎?????? ??? ?男??????? ??? ?NULL?? ?NULL?? ?NULL
7??????? ??? ?t1?????? ??? ?張果?????? ??? ?女??????? ??? ?NULL?? ?NULL?? ?NULL

--------------------------------------------------------------------------------------------

right join

SELECT * FROM Table_1 right join Table_2 on Table_1.ID = Table_2.ID

結果是:

1??????? ??? ?t1?????? ??? ?張三?????? ??? ?男??????? ??? ?1??????? ??? ?t2?????? ??? ?王五?????? ?
2??????? ??? ?t1?????? ??? ?小白?????? ??? ?女??????? ??? ?2??????? ??? ?t2?????? ??? ?小五?????? ?
4??????? ??? ?t1?????? ??? ?王小?????? ??? ?女??????? ??? ?4??????? ??? ?t2?????? ??? ?王五?????? ?
5??????? ??? ?t1?????? ??? ?李白?????? ??? ?男??????? ??? ?5??????? ??? ?t2?????? ??? ?趙雪?????? ?
NULL?? ?? NULL?? ?? NULL?? ????? NULL?? ? ? ? 8??????? ??? ?t2?????? ??? ?張龍???????

--------------------------------------------------------------------------------------------

inner join

select * from Table_1 inner join Table_2 on Table_1.ID=Table_2.ID

結果是:

1??????? ??? ?t1?????? ??? ?張三?????? ??? ?男??????? ??? ?1??????? ??? ?t2?????? ??? ?王五?????? ?
2??????? ??? ?t1?????? ??? ?小白?????? ??? ?女??????? ??? ?2??????? ??? ?t2?????? ??? ?小五?????? ?
4??????? ??? ?t1?????? ??? ?王小?????? ??? ?女??????? ??? ?4??????? ??? ?t2?????? ??? ?王五?????? ?
5??????? ??? ?t1?????? ??? ?李白?????? ??? ?男??????? ??? ?5??????? ??? ?t2?????? ??? ?趙雪???????

----------------------------------------------------------------------------------------------

?總結:left join與right join 的區別主要是在于基礎表是左表還是右表,對于不滿足基礎表聯結字段的行將會有null填充 ??

?語法:from Table_1 LEFT JOIN Table_2 ON Table_1.columnName compopr Table_2.columnName
columnName必須有相同的數據類型及包含相同類型的數據,但它們不需要有相同的名稱。
compopr指定的運算符有:"=", "<", ">", "<=", ">=" 或 "<>"

----------------------------------------------------------------------------------------------

這次先分享到這里,有不完整之處還請廣大網友進行補充,過段時間再分享多表聯結查詢不重復的數據

總結

以上是生活随笔為你收集整理的SQL语句值left join,right join,inner join的用法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。