MySQL两表相同字段合并、更新,JAVA实现

有两张表A和B,两个表结构相同,例如:表A:idwordnum1"good"32"bad"53"ok"2表B:idwordnum1"good"52"ok"33"ask"4... 有两张表A和B,两个表结构相同,例如:
表A:id word num
1 "good" 3
2 "bad" 5
3 "ok" 2
表B:id word num
1 "good" 5
2 "ok" 3
3 "ask" 4
两个表的主键都是id和word
要实现的功能:1、将两表中word字段相同的记录合并,并将num字段的和更新到表B中;
2、若表B中存在着表A中没有的记录,则将该记录插入表A中;
更新后的表A: id word num
1 “good” 8(=3+5)
2 "bad" 5
3 “ok” 5(=2+3)
4 "ask" 4
我知道可以用update和insert语句实现,但是自己上网查了好多,也写了几种,都不成功,哪位可以告诉我这几条SQL语句该怎么写?我用的环境是Eclipse+MySQL。
展开
 我来答
百度网友4b68195
2013-08-10 · TA获得超过1520个赞
知道大有可为答主
回答量:1773
采纳率:100%
帮助的人:1727万
展开全部

用下面的过程可以完成所要的功能

create procedure proc1
begin 
create temporary table  tt(word varchar(50), num int); 
insert into tt(word,num) select word,num from 表A union select word,num from  表B;
delete from 表A;
insert into 表A(word,num)  select word, sum(num) as num from tt group by word;
drop table  tt;
end
追问
不好意思啊,我不太明白上面的代码。我用的是那种try-catch语句的模板,貌似没有create procedure这种用法,可以再解释一下吗?
另外,我的思路是将insert和update这两个过程分开,先update,然后再insert。但是那个update语句实在不知道该怎么写。能指点一下不?
追答
1、你先在MYSQL中创建该过程,然后在JAVA中调用该过程。
2、你也可以在JAVA中连接上MYSQL后,依次执行3-7行这5条语句。
stmt.executeUpdate("create temporary table tt(word varchar(50), num int)");
stmt.executeUpdate("insert into tt(word,num) select word,num from 表A union select word,num from 表B");
......
home曾经的飞
2013-08-13
知道答主
回答量:24
采纳率:0%
帮助的人:10.6万
展开全部
用下面的过程可以完成所要的功能
create procedure proc1begin create temporary table tt(word varchar(50), num int); insert into tt(word,num) select word,num from 表A union select word,num from 表B;dele...查看全文>>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式