MySql中用一张表的数据更新另一张表的部分数据

写在前面

昨天本人用MySql进行简单的数据分析的时候,遇到了一个问题——用一张表内查找到的数据更新另一张表的部分数据。由于本人以前基本上没有用MySql处理过数据,因而在此过程中遇到了诸多问题。先将正确的方法记录下来,已提醒自己,同时也希望对大家有用。

Sql语句

为了便于说明,先给出如下两个表格,table A and table B:
table A

uidtimeforward_countcomment_count
1012014-07-0121
1022014-07-0542
1032014-08-1033
1042014-12-1185
1052014-07-2143

table B

uidforward_count
1010
1020
1030
1040
1050
1060
1070

现在,我们要将table A 中所有用户七月份(2014-07-__)的数据更新到table B中,于是,我们使用如下语句:

CREATE TABLE C AS
SELECT uid,forward_count
FROM A
WHERE `time` LIKE '2014-07-__'

得到table C:

uidforward_count t
1012
1024
1054

然后用table C数据更新table B:

UPDATE  B,C
SET B.forward_count=C.forward_count
WHERE C.uid=B.uid

得到了更新后的table B:

uidforward_count
1012
1024
1030
1040
1054
1060
1070

本人犯的错

本人在更新数据时,采用的是 INSERT INTO 语句,由此导致将table C的数据直接插入到了table B数据之后。导致本人在这个小问题上花费了大量时间和精力,惭愧,惭愧。

借用一下MySql图标

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值