sql語句中兩表連結(jié)方式主要有一下3中,需要注意的時在進(jìn)行多表連結(jié)的時候必須要用 on 指定表中的某個字段作為連結(jié)的條件
left join(左聯(lián)接) 返回包括左表中的所有記錄和右表中聯(lián)結(jié)字段相等的記錄 -----結(jié)果集的條目數(shù)以左表為準(zhǔn)right join(右聯(lián)接) 返回包括右表中的所有記錄和左表中聯(lián)結(jié)字段相等的記錄------結(jié)果集的條目數(shù)以右表為準(zhǔn)inner join(等值連接) 只返回兩個表中聯(lián)結(jié)字段相等的行------結(jié)果集的條目數(shù)為聯(lián)結(jié)字段相等的行數(shù)
看一下例子
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結(jié)果是:
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結(jié)果是:
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結(jié)果是:
1 t1 張三 男 1 t2 王五 2 t1 小白 女 2 t2 小五 4 t1 王小 女 4 t2 王五 5 t1 李白 男 5 t2 趙雪
----------------------------------------------------------------------------------------------
總結(jié):left join與right join 的區(qū)別主要是在于基礎(chǔ)表是左表還是右表,對于不滿足基礎(chǔ)表聯(lián)結(jié)字段的行將會有null填充
語法:from Table_1 LEFT JOIN Table_2 ON Table_1.columnName compoPR Table_2.columnNamecolumnName必須有相同的數(shù)據(jù)類型及包含相同類型的數(shù)據(jù),但它們不需要有相同的名稱。compopr指定的運(yùn)算符有:"=", "<", ">", "<=", ">=" 或 "<>"
----------------------------------------------------------------------------------------------
這次先分享到這里,有不完整之處還請廣大網(wǎng)友進(jìn)行補(bǔ)充,過段時間再分享多表聯(lián)結(jié)查詢不重復(fù)的數(shù)據(jù)
新聞熱點(diǎn)
疑難解答
圖片精選