tmp_a tmp_b UNION UNION ALL libingxue 1001 libingxue 1001 1 行 2 行 yuwen 1002 feiyao 1003 共 3 行 共 4 行 Hive/Spark SQL 特殊語法
-- 需求:兩表同結構,取 user_id, shop_id 維度的最新 auction_id, search_time -- 方案 1:UNION ALL + GROUP BY SELECT user_id, shop_id, MAX(auction_id), MAX(search_time) FROM (SELECT * FROM resource UNION ALL SELECT * FROM result) t GROUP BY user_id, shop_id; -- 方案 2:JOIN(需一對一或取最新一行) SELECT t1.user_id, t1.shop_id, t2.auction_id, t2.search_time FROM resource t1 JOIN result t2 ON t1.user_id=t2.user_id AND t1.shop_id=t2.shop_id;兩者結果相同時,優先選 UNION ALL + GROUP BY(語義清晰、不依賴關聯基數),或根據 EXPLAIN 成本選擇。
標準 SQL UNION 連接範例
![]()
![]()