<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

SQL全外連接剖析

小明 ? 來源:SO JSON在線解析 ? 作者:SO JSON在線解析 ? 2024-03-19 18:28 ? 次閱讀

SQL中的全外連接是什么?

在SQL中,FULLOUTERJOIN組合左外連接和右外連接的結果,并返回連接子句兩側表中的所有(匹配或不匹配)行。接下面sojson給大家詳細講解。

圖解:SQL全外連接

wKgZomX1U7mAOuBHAAAi3aQBipE037.jpg


wKgaomX1U7qAezetAACSsd8z5TA796.jpg


wKgZomX1U7uAXmZvAAByNWi__O4610.jpg


句法:

SELECT *

FROM table1

FULL OUTER JOIN table2

ON table1.column_name=table2.column_name;

語法圖 - FULL OUTER JOIN

wKgaomX1U7yAU88xAABHGruz1Vg029.jpg


示例:SQL 完全外連接

讓我們使用完全連接來組合相同的兩個表。

wKgZomX1U72AWsKzAAAVbuu6Rds278.jpg


SQL代碼:

SELECT * FROM table_A

FULL OUTER JOIN table_B

ON table_A.A=table_B.A;

輸出:

wKgaomX1U76AXZhcAAAO90AI_W0698.jpg


由于這是完全聯接,因此兩個表中的所有行(匹配和不匹配)都包含在輸出中。表table_A和表table_B之間只有一個匹配,因此只有一行輸出顯示所有列中的值。輸出的所有剩余行僅包含表 table_A 或表 table_B 中的值,其余列設置為缺失值

僅一行輸出顯示所有列中的值,解釋如下 -

wKgZomX1U7-AJJLLAAAU3_4aSCI619.jpg


示例:兩個表之間的 SQL 完全外連接

下面是兩個表之間 SQL 中的完全外連接的示例。

示例表:食品

+---------+--------------+-----------+------------+

| ITEM_ID | ITEM_NAME | ITEM_UNIT | COMPANY_ID |

+---------+--------------+-----------+------------+

| 1 | Chex Mix | Pcs | 16 |

| 6 | Cheez-It | Pcs | 15 |

| 2 | BN Biscuit | Pcs | 15 |

| 3 | Mighty Munch | Pcs | 17 |

| 4 | Pot Rice | Pcs | 15 |

| 5 | Jaffa Cakes | Pcs | 18 |

| 7 | Salt n Shake | Pcs | |

+---------+--------------+-----------+------------+

示例表:公司

+------------+---------------+--------------+

| COMPANY_ID | COMPANY_NAME | COMPANY_CITY |

+------------+---------------+--------------+

| 18 | Order All | Boston |

| 15 | Jack Hill Ltd | London |

| 16 | Akas Foods | Delhi |

| 17 | Foodies. | London |

| 19 | sip-n-Bite. | New York |

+------------+---------------+--------------+

我們知道FULL OUTER JOIN是LEFT OUTER JOIN和RIGHT OUTER JOIN結果的組合,因此,這里我們將描述FULL OUTER JOIN內部是如何執行的。

圖解演示SQL全外連接:

wKgaomX1U8GATMLtAAGXuH6JU_A251.jpg


以下 SQL 語句使用“FULL OUTER JOIN”子句返回“foods”表和“company”表中的所有行。

SQL代碼:

SELECT a.company_id AS "a.ComID",

a.company_name AS "C_Name",

b.company_id AS "b.ComID",

b.item_name AS "I_Name"

FROM company a

FULL OUTER JOIN foods b

ON a.company_id = b.company_id;

輸出:

a.ComID C_Name b.ComID I_Name

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

16 Akas Foods 16 Chex Mix

15 Jack Hill Ltd 15 Cheez-It

15 Jack Hill Ltd 15 BN Biscuit

17 Foodies。17 Mighty Munch

15 Jack Hill Ltd 15 Pot Rice

18 訂購全部 18 Jaffa Cakes

Salt n Shake

19 sip-n-Bite。

使用 WHERE 子句的完整外部聯接

我們可以包含一個帶有 FULL OUTER JOIN 的 WHERE 子句,以僅返回那些連接表之間不存在匹配數據的行。

以下查詢僅返回在 food 中沒有匹配食品的公司,以及與上市公司不匹配的 food 中的食品。

SELECT a.company_id AS "a.ComID",

a.company_name AS "C_Name",

b.company_id AS "b.ComID",

b.item_name AS "I_Name"

FROM company a

FULL OUTER JOIN foods b

ON a.company_id = b.company_id

WHERE a.company_id IS NULL

OR b.company_id IS NULL

ORDER BY company_name;

輸出:

a.ComID C_Name b.ComID I_Name

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

19 sip-n-Bite.

Salt n Shake

使用 Union 子句的完全外連接

UNION 子句可用作替代,以獲得與 FULL OUTER JOIN 相同的結果

這是示例:

wKgZomX1U8KAIc1dAAAUMcSjkT0469.jpg


這是 SQL 語句:

SELECT table_a.A,table_a.M,table_b.A,table_b.N

FROM table_A

FULL OUTER JOIN table_B

ON table_A.a=table_b.A

ORDER BY table_A.A;

使用LEFT和RIGHT OUTER JOIN以及UNION 子句的FULL OUTER JOIN

下面的代碼是,LEFT OUTER JOIN 和 RIGHT OUTER JOIN 的組合,并通過使用 UNION 子句進行組合

SELECT table_a.A,table_a.M,table_b.A,table_b.N

FROM table_A

LEFT OUTER JOIN table_B

ON table_A.a=table_b.A

UNION

SELECT table_a.A,table_a.M,table_b.A,table_b.N

FROM table_A

RIGHT OUTER JOIN table_B

ON table_A.a=table_b.A;

wKgaomX1U8OALSGGAAASLM90x-U682.jpg


注意:此處顯示的所述 SQL 語句的輸出是使用 Oracle 數據庫 10g Express Edition 獲取的。

希望sojson能給你的工作帶來幫助。

版權所屬:SO JSON在線解析

原文地址:https://www.sojson.com/blog/510.html

轉載時必須以鏈接形式注明原始出處及本聲明。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • SQL
    SQL
    +關注

    關注

    1

    文章

    740

    瀏覽量

    43522
  • 代碼
    +關注

    關注

    30

    文章

    4569

    瀏覽量

    67063
收藏 人收藏

    評論

    相關推薦

    labviEW和sql連接方法

    在用LABVIEW進行數據采集分析過程中,一般會用到數據庫。在數據量很大的場合,可考慮使用SQLSERVER。下面就介紹LABVIEW與SQL SERVER的連接方法。連接思路:先在
    發表于 03-23 15:53

    labview 連接sql server

    本帖最后由 strongustb 于 2012-4-11 07:52 編輯 為什么labivew 連接 access 數據庫運行的好好的labview 連接 sql server 數據庫
    發表于 04-11 07:51

    labview與SQL server如何連接

    請問我想用labview連接SQL server是否有簡單的例子可以共享一下呢
    發表于 05-17 13:14

    labview連接SQL server方法

    for ODBC Drivers: [Microsoft][ODBC SQL Server Driver][SQL Server]用戶 '(null)' 登錄失敗。原因: 未與信任 SQL Server
    發表于 12-15 16:45

    SQL怎么連接字符串

    大家好,我正在嘗試打開與我的SQL 2008服務器的連接,并且一直在使用提供的示例,只要我已登錄它們就可以工作(我有管理權限)。但是,使用我們的測試系統用戶帳戶,我我試圖通過修改“Build SQL
    發表于 03-26 10:11

    連接oracle數據庫,封裝sql執行子vi

    連接oracle數據庫,封裝sql執行子vi。連接oracle數據庫可以安裝oracle客戶端,或者通過odbc的方式去連接。連接后,可通過
    發表于 07-03 12:07

    淺析SQL的四種連接方式

    SQL的四種連接-左連接、右連接、內連接、
    發表于 03-20 11:18

    SQL能處理的自連接

    sql 基礎(7)自連接
    發表于 04-08 14:19

    sql如何進行連接

    sql 基礎(8)連接
    發表于 04-24 15:05

    使用LabVIEW的SQL進行連接的程序免費下載

    本文檔的主要內容詳細介紹的是使用LabVIEW的SQL進行連接的程序免費下載。
    發表于 09-26 08:00 ?11次下載
    使用LabVIEW的<b class='flag-5'>SQL</b>進行<b class='flag-5'>連接</b>的程序免費下載

    使用SQL Server連接字符串的資料總結

    以下的文章主要是介紹SQL Server連接字符串的總結,你如果是SQL Server連接字符串的瘋狂一族的話,此的文章,你一定不要錯過。以下就是文章的主要內容的詳細描述,望大家在瀏覽
    發表于 10-18 11:55 ?3次下載

    LABVIEW與SQL SERVER的連接方法詳細說明

     在用 LABVIEW 進行數據采集分析過程中,一般會用到數據庫。在數據量很大的場合,可考慮使用 SQL SERVER 。下面就介紹 LABVIEW 與 SQL SERVER 的連接方法。連接
    發表于 12-24 08:00 ?43次下載
    LABVIEW與<b class='flag-5'>SQL</b> SERVER的<b class='flag-5'>連接</b>方法詳細說明

    組態王連接SQL

    組態王連接SQL
    發表于 03-16 15:10 ?1次下載

    sql連接的幾種方式

    SQL連接是在關系型數據庫中用于組合多個表的操作,以獲取相互關聯的數據。根據不同的連接條件,可以使用不同的連接方式來實現。 內連接(Inn
    的頭像 發表于 11-23 11:37 ?654次閱讀

    labview與sql數據庫連接5種方法

    連接LabVIEW和SQL數據庫是一種常見的需求,可以通過多種方法實現。本文將介紹五種連接LabVIEW和SQL數據庫的方法。 方法一:使用ADO.NET
    的頭像 發表于 01-07 16:01 ?2098次閱讀
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>