SQL从一个表复制到适当的字段到另一个表

时间:2013-07-04 17:27:55

标签: mysql sql database

我有这个查询,它是由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

提前致谢

1 个答案:

答案 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