SQL 列不同的表查詢結果合併操作

2022-09-25 05:54:12 字數 1619 閱讀 8255

兩個不同的表進行查詢,需要把結果合併,

程式設計客棧比如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中。

補充知識:s程式設計客棧ql結果集合並用union all 不同表的列合併用join

結果集合並用union all 不同表的列合併用join

selec程式設計客棧t

"模組名",

"事件編碼",

"點選數量",

"使用時長(單位:分)"

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 da = today() and like(event_code,'%10000') group by "模組名" ,"事件編碼"

) t6 on t5."模組名"=t6."模組名" and t5."事件編碼"=t6."事件編碼"

本文標題: sql 列不同的表查詢結果合併操作

本文位址:

關於SQL查詢語句合併結果集

整理別人的sql 大概的思想是用union 和union all 合併重複行 select from a union select from b 不合併重複行 select from a union all select from b 按某個字段排序 合併重複行 select from select...

拼接查詢sql中指定列的結果集

函式適用於 需要將指定查詢sql中的某列拼接成以指定字元分隔連線的字串。不足 因函式的返回值為varchar2,且通常拼接得到的字串會用於查詢sql 因用在sql中,不能大於varchar2的4000個字元限制 中,因此限制了返回長度小於等於4000 create or replace functi...

拼接查詢sql中指定列的結果集

函式適用於 需要將指定查詢sql中的某列拼接成以指定字元分隔連線的字串。不足 因函式的返回值為varchar2,且通常拼接得到的字串會用於查詢sql 因用在sql中,不能大於varchar2的4000個字元限制 中,因此限制了返回長度小於等於4000 create or replace functi...