表連結與聯合

  • 文檔創建者:Roxy
  • 編輯次數:4
  • 最近更新:Nikozhan 于 2026-03-04
  • 1. 概述

    進行資料處理時,經常需要將資料表進行連結,本文介紹在 FineDataLink 中的多種連結方式。

    2. 左連結

    LEFT JOIN(左連結)和 LEFT OUTER JOIN(左外連結) :傳回包括左表中的所有記錄和右表中連結欄位相等的記錄。

    根據條件以左表為基準進行匹 配,如果匹配則正常匯出,沒有則以 null 代替,而且右邊表有重複值的情況下會匯出多條。

    在 FineDataLink 中可以使用「資料聯動」實現。

    有兩張表如下:

    使用資料聯動左連結,如下圖所示:

    得到以下結果:

    上述算子設定相當於 SparkSQL 中的文法:

    select * from DB表輸入-複本
    left join DB表輸入1-複本
    on DB表輸入-複本.`姓名`  = DB表輸入1-複本.`姓名` 

     或者 

    select * from DB表輸入-複本
    left outer join DB表輸入1-複本
    on DB表輸入-複本.`姓名`  = DB表輸入1-複本.`姓名` 

    注:LEFT JOIN 和 LEFT OUTER JOIN 的匯出結果是一樣的。

    LEFT SEMI JOIN(左半連結):

    只顯示左邊的表中的列,如果條件在左右邊表中匹配,則匯出,否則 過濾掉,而且右邊表有重複值的情況下也只匯出一條。

    例如上述兩張資料表,如果使用左半連結則

    注:語句不能直接複製,資料表需點選輸入源生成。

    則只會顯示左右邊表都匹配的結果,且右側重複值被刪除,結果如下:

    3. 右連結

    與左連結一致,使用「資料聯動」即可實現。

    4. 全連結

    與左連結一致,使用「資料聯動」即可實現。

    5. 內連結

    與左連結一致,使用「資料聯動」即可實現。

    5. UNION 和 UNION ALL 聯合

    UNION:會在上下聯合時去除完全重複的資料。如果不為了去除重複行,建議使用 UNION ALL,並且效率會更高。

    範例: select* from ( select 2 as id_no,99 as score union select 2 ,95 ) Student_Score

    UNION ALL :對查詢的資料集取並集,不會去除重複行。

    例如使用如下資料表進行上下聯合:

    1)使用兩個DB表輸入算子,使用 SQL 與篩選出表a1,a2的全部資料,然後 Spark SQL 算子的 SQL 語句為:

    select * from a1
    union all
    select * from a2

    效果如下圖所示:

    注:語句不能直接複製,資料表需點選輸入源生成。

    結果如下圖所示:


    如果使用 UNION 則表一種的重複資料會被刪除,僅保留一條,結果如下圖所示:

    附件列表


    主題: 資料開發-定時任務
    • 有幫助
    • 沒幫助
    • 只是瀏覽
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    滑鼠選中內容,快速回饋問題

    滑鼠選中存在疑惑的內容,即可快速回饋問題,我們將會跟進處理。

    不再提示

    10s後關閉

    獲取幫助
    線上支援
    獲取專業技術支援,快速幫助您解決問題
    工作日9:00-12:00,13:30-17:30在线
    頁面反饋
    針對當前網頁的建議、問題反饋
    售前咨詢
    業務咨詢
    電話:0933-790886或 0989-092892
    郵箱:taiwan@fanruan.com
    頁面反饋
    *問題分類
    不能為空
    問題描述
    0/1000
    不能為空

    反馈已提交

    网络繁忙