兩個不同的表進行查詢,需要把結果合併,
程式設計客棧比如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...