我在 Hive (arch和noarch) 中有兩個表,其結構如下:
| Table1Arch | Table2NoArch |
|---|---|
| tr_id | tr_id |
| res_id | res_id |
| info_json | info_json |
| created_at | |
| 更新時間 |
我需要獲得完整的資料視圖arch noarch并通過res_id.
我嘗試對左連接進行不同的變體,但我要么得到結果,要么arch不得到結果,noarch反之亦然。我想我應該使用union all,但是很難正確地撰寫它。
你能幫我做正確的查詢嗎?
編輯:
當我搜索特定的res_ids時,我想對這兩個表有一種統一的看法。
假設我有以下資料:
| Entry1Arch | Entry2Arch |
|---|---|
| 1 | 2 |
| 111 | 222 |
| {“東西 1”} | {“東西 2”} |
| Entry3NoArch | Entry4NoArch |
|---|---|
| 3 | 4 |
| 333 | 444 |
| {“東西 3”} | {“東西 4”} |
| 2021-10-03 21:01:44.0 | 2021-10-04 21:02:43.0 |
| 2021-10-03 21:01:44.0 | 2021-10-04 21:02:43.0 |
最終目標是從兩個表中獲取完整資料:111 222 333 444)。
uj5u.com熱心網友回復:
您可以使用 UNION ALL:
select tr_id, res_id, info_json, created_at, updated_at, src
from
(select tr_id, res_id, info_json, created_at, updated_at, 'NoArch' as src
from Table2NoArch
union all
select tr_id, res_id, info_json, null created_at, null updated_at, 'Arch' as src
from Table1Arch
)u
where res_id in (111,333,444)
created_at 和 updated_at 在一個 Table1Arch 中不存在,選擇了 NULL,您可以使用 current_timestamp 或 current_date 代替。
新增 src 列,方便您查找資料來源。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/363131.html
上一篇:不同條件的SQL連接
