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 NULL4 t1 王小 女 4 t2 王五 5 t1 李白 男 5 t2 趙雪 6 t1 趙虎 男 NULL NULL NULL7 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.columnNamecolumnName必須有相同的數據類型及包含相同類型的數據,但它們不需要有相同的名稱。compopr指定的運算符有:"=", "<", ">", "<=", ">=" 或 "<>"
----------------------------------------------------------------------------------------------
這次先分享到這里,有不完整之處還請廣大網友進行補充,過段時間再分享多表聯結查詢不重復的數據
新聞熱點
疑難解答