将付费用户表,合并到总用户表中

付费用户表(pay_user_info)中,只有(imsi,create_time创建时间,channel渠道号)这3个字段;
用户表(user_info)中,有(imsi,create_time创建时间,channel渠道号,type类型)等字段;
type表示用户是否打开过(type=1)应用,是否阅读过(type=2)或付费过(type=3)。

分两种情况:
1、付费表里的记录,用户表中已经存在,需要将其type修改为3;

update user_info u 
set type=3  
where exists 
(select * from pay_user_info p where u.imsi=p.imsi);
2、付费表里的记录,用户表中不存在,需要添加到用户表中去;
insert into user_info(imsi,create_time,channel,type)
select imsi,create_time,channel,3 from pay_user_info p
where not exists 
(select * from user_info u where p.imsi=u.imsi)

你可能感兴趣的:(SQL,合并,exists,mySQL/pgSQL)