MYSQL中同一个数据库中的两个表中的数据怎样合并?(只需要合并某个字段。) 100

同一个数据库中有2个表,1个是AAA,一个是BBB,结构完全一致:===================AAA结构如下:IDusernamepost1JACKY852CA... 同一个数据库中有2个表,1个是AAA,一个是BBB,结构完全一致:
===================
AAA结构如下:
ID username post
1 JACKY 85
2 CANDY 95
===================
BBB结构如下:
ID username post
1 JACKY 33
2 CANDY 25
===================
我现在想把BBB中的post字段和AAA中的post字段合并(如合并后JACKY的post是118,candy的post是120,其他字段如ID和username保持不变),我试过用phpmyadmin先导出AAA的post字段,然后导入到BBB的post字段,不成功,提示键值已存在之类的错误。

因为涉及到好几千个ID,希望给出SQL语句,因为我本人对mysql语句并不太了解,谢谢!如能解决,送上100分。
补充一下,数据结构没说明白,分别是:
1111(数据库)_11(表)_AAA(字段)
1111(数据库)_22(表)_BBB(字段)
展开
 我来答
zhangqiaoqiaox
2018-04-08 · TA获得超过3万个赞
知道小有建树答主
回答量:31
采纳率:100%
帮助的人:2.1万
展开全部

1、忽略表之间的关联关系
ALTER TABLE db2.dbo.table NOCHECK CONSTRAINT 关系名

2、--将没有重复的数据合并

insert into db2.dbo.table(field1,field2...) select field1,field2... from db1.dbo.table a where a.username not in (select username from db2.dbo.table)

3、将重复的数据写入临时表
select field1,field2... into 新的临时表 from db1.dbo.table a where a.username in (select username from db2.dbo.table) 

百度网友c76e578
2012-02-10 · TA获得超过284个赞
知道小有建树答主
回答量:92
采纳率:0%
帮助的人:88.8万
展开全部
1.直接把结果更新在aaa表中的语句如下
update aaa
set post = (select sum_post from (select aaa.ID,(aaa.post+bbb.post) sum_post from aaa,bbb where aaa.ID=bbb.ID) t1 where t1.ID=a.ID)
where exists (select 1 from bbb where aaa.ID =bbb.ID);

2.直接查询显示的方法参见上楼;

3.新建ccc表:
create table ccc as( select id,username,sum(post) sum_post from
(select id,username,post from aaa
union all
select id,username,post from bbb)
group by id,username; )
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jack_wang0823
2017-08-03 · TA获得超过2957个赞
知道大有可为答主
回答量:4143
采纳率:87%
帮助的人:1444万
展开全部
username 字段 是否是唯一字段 如果是唯一字段可以使用左连接的方式 UPDATE aaa 表 或BBB 表
update aaa LEFT JOIN bbb ON bbb.username =aaa.username set aaa.post=aaa.post+bbb.post.
或者 update bbb LEFT JOIN aaa ON aaa.username =bbb.username set bbb.post=aaa.post+bbb.post.
如果不是唯一字段的话 不能用username 作条件左连接了 如果ID是对应的用ID 左连接
update bbb LEFT JOIN aaa ON aaa.id =bbb.id set bbb.post=aaa.post+bbb.post.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
华信333
2012-02-16 · TA获得超过809个赞
知道小有建树答主
回答量:591
采纳率:0%
帮助的人:421万
展开全部
--建新表CCC
create table CCC
(ID int not null primary key
username varchar(20) not null
post int not null)
--将AAA中的数据复制到CCC里
declare @id int,@name varchar(20),@post int
declare yb cursor for
select id,username,post from AAA
yb open
fetch yb into @id,@name,@post
while @@fetch_status=0
begin
set identity_insert CCC on
inser into CCC(id,username,post) values(@id,@name,@post)
fetch yb into @id,@name,@post
end
close yb
deallocate yb
--CCC与BBB求和并更新到CCC表中
declare @sum int,@id1 int
declare yb1 cursor for
select B.id,B.post+C.post from BBB B join CCC C on B.id=C.id
yb1 open
fetch yb1 into @id1,@sum
while @@fetch_status=0
begin
set identity_insert CCC on
inser into CCC(post) values(@sum) where id=@id1
fetch yb into @sum
end
close yb1
deallocate yb1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
小D_deer
推荐于2017-08-03 · 超过38用户采纳过TA的回答
知道小有建树答主
回答量:108
采纳率:0%
帮助的人:82.2万
展开全部
insert into table CCC
select aaa.username ,(aaa.post+bbb.post) as post
from _aaa表 , _bbb表
where aaa.username=bbb.username
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式