Join | Qlik Cloud 說明
跳到主要內容 跳至補充內容

Join

join 前置詞能夠將載入的表格與現有的具名表格或先前最後建立的資料表聯結。

聯結資料的效果是透過一組額外的欄位或屬性 (即目標表格中尚未存在的欄位或屬性) 來擴充目標表格。來源資料集與目標表格之間任何共同的欄位名稱,都會用來計算如何關聯新傳入的記錄。這通常稱為「自然聯結」。Qlik 聯結作業可能會導致產生的目標表格擁有比開始時更多或更少的記錄,這取決於聯結關聯的唯一性以及所採用的聯結類型。

video thumbnail

聯結類型

有四種聯結類型:

  • Left join

  • Inner join

  • Outer join

  • Right join

來自不同類型聯結作業的範例結果集

來自不同類型聯結作業的範例結果集,包含每次作業後資料表格的修改前後表示。輸入包含目標表格和傳入的資料集。目標表格有兩個欄,包含 'Trade ID' 和 'Asset Class' 欄位的兩個列項目。傳入資料有兩個欄,包含 'Trade ID' 和 'Exchange' 欄位的兩個列項目。Left Join 保留初始目標表格,並新增第三個欄,除了新增其中一個 'Exchange' 列項目外,其餘皆為空白。Inner Join 建立一個包含一個 Trade ID 列和第三個欄的表格,同樣用於 'Exchange' 列項目。Outer Join 保留目標表格並新增第三個欄,以及將傳入資料集的第二列附加到第三列。Right Join 移除目標表格的第二列項目,並將其替換為傳入資料集第二列項目的資訊,在此過程中新增第三個欄。

Left join

Left join 是最常見的聯結類型。例如,如果您有一個交易資料集,並希望將其與參考資料集結合,您通常會使用 Left Join。您會先載入交易表格,然後載入參考資料集,同時透過 Left Join 前置詞將其聯結至已載入的交易表格上。Left Join 會保持所有交易不變,並在找到相符項目時加上補充的參考資料欄位。

Left join

高階概述在 left join 期間發生的資料組合圖表。

Inner join

當您有兩個資料集,且只關心有相符關聯的任何結果時,請考慮使用 Inner Join。如果找不到相符項目,這將會從載入的來源資料和目標表格中消除所有記錄。因此,這可能會讓您的目標表格記錄比聯結作業發生前更少。

Inner join

高階概述在 inner join 期間發生的資料組合圖表。

Outer join (預設)

當您需要同時保留目標記錄和所有傳入記錄時,請使用 Outer Join。在找不到相符項目的情況下,每組記錄仍會保留,而聯結另一側的欄位將保持未填入 (null)。

如果省略類型關鍵字,預設的聯結類型為 outer join。

Outer join

高階概述在 outer join 期間發生的資料組合圖表。

Right join

此聯結類型會保留所有即將載入的記錄,同時將聯結目標表格中的記錄減少為僅在傳入記錄中有相符關聯的記錄。這是一種利基聯結類型,有時用作將已預先載入的記錄表格縮減為所需子集的方法。

Right join

高階概述在 right join 期間發生的資料組合圖表。

Cross join

資訊備註如果聯結作業的來源和目標之間沒有共同的欄位名稱,聯結將會產生所有列的笛卡兒積 – 這稱為「cross join」。

來自「cross join」作業的範例結果集

cross join 作業 (可能涉及任何類型的聯結作業) 後輸入資料與輸出的修改前後比較。輸入為目標表格和傳入的資料集。目標表格包含三個欄,有兩個列項目。欄位為 'Trade ID'、'Base Currency' 和 'Amount'。傳入資料集有兩個欄 ('Trade Currency' 和 'Rate') 和兩個列項目。產生的表格有五個欄,分別為 'Trade ID'、'Base Currency'、'Amount'、'Target Currency' 和 'Rate'。有四個列項目,結合了所有資料。每個 'Trade ID' 項目有兩列,在其他欄位中有不同的資料。

語法和引數

[inner | outer | left | right ]Join [ (tablename ) ]( loadstatement | selectstatement )

引數
引數 描述
tablename 要與所載入表格比較的具名表格。
loadstatementselectstatement 已載入表格的 LOADSELECT 陳述式。

相關主題

這些主題可協助您使用此函數:

相關主題
主題 說明
使用 Join 與 Keep 來合併表格 此主題提供「聯結」和「保留」資料集概念的進一步說明。
Keep Keep 載入前置詞類似於 Join 前置詞,但它不會結合來源和目標資料集。相反地,它會根據採用的作業類型 (inner、outer、left 或 right) 縮減每個資料集

載入指令碼範例 - Left join

Left join 會保留主 (目標) 表格中的所有記錄,並從第二個 (來源) 表格新增相符的資料。如果來源中沒有相符項目,主表格的記錄仍會出現,但來源表格的欄位會是空白的。

載入指令碼範例 - Inner join

Inner join 僅保留存在於兩個表格中的記錄 (根據相符的欄位值)。

載入指令碼範例 - Outer join

Outer join 會保留兩個表格中的所有記錄。在沒有相符項目的情況下,欄位會留白。

載入指令碼範例 - Right join

Right join 會保留來源表格中的所有記錄,並從目標表格新增相符的資訊。如果目標表格沒有相符項目,其欄位會是空白的。

疑難排解 - Cross join

此頁面是否對您有幫助?

若您發現此頁面或其內容有任何問題——錯字、遺漏步驟或技術錯誤——請告知我們!