我有这个查询,它是由stackoverflow
非常有用的成员编写的update smf_members a,
(select user_id,
sum(if(karma_action='+',1,0)) karma_good,
sum(if(karma_action='-',1,0)) karma_bad
from phpbb_karma
group by user_id) b
set a.karma_good=b.karma_good, a.karma_bad = b.karma_bad
where a.id_member = b.user_id;
它是出于以下目的而写的: 我需要将数据从phpbb中的karma mod传递到smf中的karma。
Phpbb有一个表phpbb_karma,它基本上是一个业力日志。我们需要关注的重要字段是user_id(获得业力的用户)和karma_action(正面或负面的业力,显示为+或 - )。
我需要一个查询来计算所有优缺点,然后将每个唯一user_id的给定结果复制到适当的id_member(smf中的user_id字段)和karma_good(所有优点)和karma_bad(所有缺点)下的smf_members表中)。
现在我需要一些变化 - 将数据从phpbb_karma传输到mybb_reputation
我需要转移以下字段:
user_id -> uid
post_id -> pid
poster_id -> adduid
karma_action -> reputation (if its +, then 1, if its -, then -1)
karma_time -> dateline
comment_text -> comments
提前致谢
答案 0 :(得分:0)
你的意思是插入一样:
insert into mybb_reputation (uid, pid, adduid, reputation, dateline, comments)
select user_id as uid, post_id as pid, poster_id as adduid, case when karma_action= '+' then 1 when karma_reputation='-' then -1 end as reputation, karma_time as dateline, comment_text as comments from phpbb_karma