首頁 > 資料庫 > mysql教程 > 如何將兩個結構相似但類別不同的表合併為一個輸出表?

如何將兩個結構相似但類別不同的表合併為一個輸出表?

Barbara Streisand
發布: 2024-12-22 21:31:17
原創
994 人瀏覽過

How Can I Combine Two Tables with Similar Structures but Different Categories into a Single Output Table?

將兩個表組合為一個輸出

資料庫操作通常需要將來自多個來源的資料合併為一個內聚的輸出。一個常見的挑戰是將具有相似結構但不同類別的表格組合在一起。考慮以下問題:

您有兩個表,“KnownHours”和“UnknownHours”,其中欄位包括ChargeNum(唯一識別碼)、CategoryID(類別分配)、Month(日期)和Hours(實際值) 。任務是將這些表(忽略「月份」列)組合成一個資料表,並按 ChargeNum 和 CategoryID 對「小時」進行分組。

預期輸出為:

ChargeNum    CategoryID     Hours
111111       1              90
111111       2              50
111111       Unknown        110.5
222222       1              40
222222       Unknown        25.5
登入後複製

要實現此目的,我們可以利用 UNION 運算符,它組合兩個查詢的結果。對於這個問題,我們將建立兩個查詢:

查詢1:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
登入後複製

此查詢檢索ChargeNum、CategoryID 以及每個查詢的小時總和來自「 KnownHours」表的組合。

查詢2:

SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum
登入後複製

此查詢會擷取「UnknownHours」表中每個項目的 ChargeNum 和小時總和,並將「Unknown」指定為 CategoryID。

組合兩者使用 UNION ALL 的查詢會產生所需的輸出:

SELECT ChargeNum, CategoryID, SUM(Hours)
FROM KnownHours
GROUP BY ChargeNum, CategoryID
UNION ALL
SELECT ChargeNum, 'Unknown' AS CategoryID, SUM(Hours)
FROM UnknownHours
GROUP BY ChargeNum
登入後複製

UNION ALL 運算符合並結果而不刪除重複項,提供組合資料的完整視圖。

以上是如何將兩個結構相似但類別不同的表合併為一個輸出表?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板