您好,登錄后才能下訂單哦!
SQL 如何實現列不同的表查詢結果合并?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。
兩個不同的表進行查詢,需要把結果合并,
比如table1的列為 id, user_id, type_id,pro_id;
table2的列為 id,user_id,collect_id;分別如下圖所示
table1:
table2:
將兩個表的查詢結果合并到一起的查詢語句為
select *, null as collect_id from table1 where user_id = 527 union select id,user_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 "模塊名", T.event_code 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 如何實現列不同的表查詢結果合并問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。