关于sql连接查询(内联、左联、右联、全联)
內(nèi)連接(INNER JOIN)(典型的連接運(yùn)算,使用像 = 或 <> 之類(lèi)的比較運(yùn)算符)。包括相等連接和自然連接。 內(nèi)連接使用比較運(yùn)算符根據(jù)每個(gè)表共有的列的值匹配兩個(gè)表中的行
左連接(LEFT JOIN 或 LEFT OUTER JOIN)是右左邊表中的數(shù)據(jù)為基準(zhǔn),若左表有數(shù)據(jù)右表沒(méi)有數(shù)據(jù),否則顯示左表中的數(shù)據(jù)右表中的數(shù)據(jù)顯示為空
右連接(RIGHT JOIN 或 RIGHT OUTER JOIN)是以右邊表中的數(shù)據(jù)為基準(zhǔn),若右表有數(shù)據(jù)左表沒(méi)有數(shù)據(jù),否則顯示右表中的數(shù)據(jù)左表中的數(shù)據(jù)顯示為空
全連接( FULL JOIN 或 FULL OUTER JOIN) 完整外部連接返回左表和右表中的所有行。當(dāng)某行在另一個(gè)表中沒(méi)有匹配行時(shí),則另一個(gè)表的選擇列表列包含空值。如果表之間有匹配行,則整個(gè)結(jié)果集行包含基表的數(shù)據(jù)值。
下面用幾個(gè)實(shí)例來(lái)詳細(xì)說(shuō)明
兩個(gè)表:
A(id,name)
數(shù)據(jù):(1,張三)(2,李四)(3,王五)
B(id,name)
數(shù)據(jù):(1,學(xué)生)(2,老師)(4,校長(zhǎng))
內(nèi)連接結(jié)果:
select A.*,B.* from A inner join B on A.id=B.id;
1 張三 1 學(xué)生
2 李四 2 老師
左連接結(jié)果:
select A.*,B.* from A left join B on A.id=B.id;
1 張三 1 學(xué)生
2 李四 2 老師
3 王五 NULL NULL
右連接結(jié)果:
select A.*,B.* from A right join B on A.id=B.id;
1 張三 1 學(xué)生
2 李四 2 老師
NULL NULL 4 校長(zhǎng)
全連接結(jié)果
select A.*,B.* from A full join B on A.id=B.id;
1 張三 1 學(xué)生
2 李四 2 老師
3 王五 NULL NULL
NULL NULL 4 校長(zhǎng)
****************
補(bǔ)充:下面這種情況就會(huì)用到外連接
比如有兩個(gè)表一個(gè)是用戶(hù)表,一個(gè)是交易記錄表,如果我要查詢(xún)每個(gè)用戶(hù)的交易記錄就要用到左外外連接,因?yàn)椴皇敲總€(gè)用戶(hù)都有交易記錄。
用到左外連接后,有交易記錄的信息就會(huì)顯示,沒(méi)有的就顯示NULL,就像上面我舉得例子一樣。
如果不用外連接的話(huà),比如【王五】沒(méi)有交易記錄的話(huà),那么用戶(hù)表里的【王五】的信息就不會(huì)顯示,就失去了查詢(xún)所有用戶(hù)交易記錄的意義了。
****************
看一下結(jié)果就能明白各種連接的區(qū)別了。
轉(zhuǎn)載:https://blog.csdn.net/dsiori/article/details/54926046
總結(jié)
以上是生活随笔為你收集整理的关于sql连接查询(内联、左联、右联、全联)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 《闪乱神乐:忍乳负重》官网开张 美胸妹满
- 下一篇: 《三国全面战争》双传奇曹操派系统一攻略