佳木斯湛栽影视文化发展公司

主頁 > 知識庫 > 簡單學(xué)習(xí)SQL的各種連接Join

簡單學(xué)習(xí)SQL的各種連接Join

熱門標(biāo)簽:百度競價排名 AI電銷 呼叫中心市場需求 鐵路電話系統(tǒng) Linux服務(wù)器 地方門戶網(wǎng)站 網(wǎng)站排名優(yōu)化 服務(wù)外包

SQL JOIN 子句用于把來自兩個或多個表的行結(jié)合起來,基于這些表之間的共同字段。

最常見的 JOIN 類型:SQL INNER JOIN(簡單的 JOIN)、SQL LEFT JOIN、SQL RIGHT JOIN、SQL FULL JOIN,其中前一種是內(nèi)連接,后三種是外鏈接。

假設(shè)我們有兩張表,Table A是左邊的表,Table B是右邊的表。

id name
1 Google
2 淘寶
3 微博
4 Facebook
id address
1 美國
5 中國
3 中國
6 美國

INNER JOIN

內(nèi)連接是最常見的一種連接,只連接匹配的行。

inner join語法

select column_name(s)
from table 1
INNER JOIN table 2
ON
table 1.column_name=table 2.column_name

注釋:INNER JOIN與JOIN是相同

INNER JOIN產(chǎn)生的結(jié)果集中,是1和2的交集。

select * from Table A inner join Table B
on Table A.id=Table B.id

執(zhí)行以上SQL輸出結(jié)果如下:

id name address
1 Google 美國
3 微博 中國

LEFT JOIN

LEFT JOIN返回左表的全部行和右表滿足ON條件的行,如果左表的行在右表中沒有匹配,那么這一行右表中對應(yīng)數(shù)據(jù)用NULL代替。

LEFT JOIN 語法

select column_name(s)
from table 1
LEFT JOIN table 2
ON table 1.column_name=table 2.column_name

注釋:在某些數(shù)據(jù)庫中,LEFT JOIN 稱為LEFT OUTER JOIN

LEFT JOIN產(chǎn)生表1的完全集,而2表中匹配的則有值,沒有匹配的則以null值取代。

select * from Table A left join Table B
on Table A.id=Table B.id

執(zhí)行以上SQL輸出結(jié)果如下:

id name address
1 Google 美國
2 淘寶 null
3 微博 中國
4 Facebook null

RIGHT JOIN

RIGHT JOIN返回右表的全部行和左表滿足ON條件的行,如果右表的行在左表中沒有匹配,那么這一行左表中對應(yīng)數(shù)據(jù)用NULL代替。

RIGHT JOIN語法

select column_name(s)
from table 1
RIGHT JOIN table 2
ON table 1.column_name=table 2.column_name

注釋:在某些數(shù)據(jù)庫中,RIGHT JOIN 稱為RIGHT OUTER JOIN

RIGHT JOIN產(chǎn)生表2的完全集,而1表中匹配的則有值,沒有匹配的則以null值取代。

select * from Table A right join Table B
on Table A.id=Table B.id

執(zhí)行以上SQL輸出結(jié)果如下:

id name address
1 Google 美國
5 null 中國
3 微博 中國
6 null 美國

FULL OUTER JOIN

FULL JOIN 會從左表 和右表 那里返回所有的行。如果其中一個表的數(shù)據(jù)行在另一個表中沒有匹配的行,那么對面的數(shù)據(jù)用NULL代替

FULL OUTER JOIN語法

select column_name(s)
from table 1
FULL OUTER JOIN table 2
ON table 1.column_name=table 2.column_name

FULL OUTER JOIN產(chǎn)生1和2的并集。但是需要注意的是,對于沒有匹配的記錄,則會以null做為值。

select * from Table A full outer join Table B
on Table A.id=Table B.id

執(zhí)行以上SQL輸出結(jié)果如下:

id name address
1 Google 美國
2 淘寶 null
3 微博 中國
4 Facebook null
5 null 中國
6 null 美國

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • sql和MySQL的語句執(zhí)行順序分析
  • SQL語句執(zhí)行順序詳解
  • SQL語句執(zhí)行順序圖文介紹
  • SQLServer中SELECT語句的執(zhí)行順序
  • SQL Select語句完整的執(zhí)行順序
  • MySQL中(JOIN/ORDER BY)語句的查詢過程及優(yōu)化方法
  • SQL聯(lián)合查詢inner join、outer join和cross join的區(qū)別詳解
  • MySQL left join操作中on和where放置條件的區(qū)別介紹
  • sql中的left join及on、where條件關(guān)鍵字的區(qū)別詳解
  • mysql多個left join連接查詢用法分析

標(biāo)簽:蘭州 衡水 湘潭 仙桃 崇左 黃山 湖南 銅川

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《簡單學(xué)習(xí)SQL的各種連接Join》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266
    汽车| 革吉县| 丹凤县| 林口县| 闻喜县| 昌宁县| 新郑市| 托克逊县| 浦县| 鹿泉市| 六安市| 夹江县| 肇庆市| 乐东| 孙吴县| 田阳县| 中江县| 海原县| 健康| 翼城县| 安福县| 颍上县| 固阳县| 镇宁| 神农架林区| 千阳县| 苏州市| 宁武县| 米易县| 汨罗市| 枣强县| 巧家县| 三台县| 南宫市| 邵东县| 错那县| 平湖市| 宜章县| 郴州市| 如东县| 潮州市|