SQL 列不同的表查詢結果合併操作
阿新 • • 發佈:2020-10-27
兩個不同的表進行查詢,需要把結果合併,
比如table1的列為 id,user_id,type_id,pro_id;
table2的列為 id,collect_id;分別如下圖所示
table1:
table2:
將兩個表的查詢結果合併到一起的查詢語句為
select *,null as collect_id from table1 where user_id = 527 union select id,null as type_id,null as pro_id,collect_id from table2 where user_id = 527;
結果為:
其實就是把對應的列補充到沒有該列的表中,在例子中就是把collect_id補充到table1中,
把type_id,pro_id補充到table2中。
補充知識:sql結果集合並用union all 不同表的列合併用join
結果集合並用union all 不同表的列合併用join
SELECT "模組名","事件編碼","點選數量","使用時長(單位:分)" FROM (SELECT T.fun_name as "模組名",T.event_code as "事件編碼",SUM(click_records) as "點選數量" FROM (SELECT m.* FROM default.daily_new_clientrpt_master m WHERE event_id in ( SELECT max(event_id) AS "事件" from default.daily_new_clientrpt_master group by user_name,fun_code ORDER BY "事件" DESC ) ) T where day = today() GROUP BY "模組名","事件編碼") T5 JOIN ( SELECT T.fun_name as "模組名",round(sum(stay_time)/60000,0) as "使用時長(單位:分)" FROM (SELECT m.* FROM default.daily_new_clientrpt_master m WHERE event_id in ( SELECT "事件" FROM ( SELECT max(event_id) AS "事件",max(stay_time) AS "事件1" from default.daily_new_clientrpt_master group by user_name,fun_code ORDER BY "事件1" DESC) ) ) T where day = today() AND like(event_code,'%10000') GROUP BY "模組名","事件編碼" ) T6 ON T5."模組名"=T6."模組名" AND T5."事件編碼"=T6."事件編碼"
以上這篇SQL 列不同的表查詢結果合併操作就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。