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

来源:互联网 发布:windows预览体验版 编辑:程序博客网 时间:2024/05/19 18:13

写在前面

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

Sql语句

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

uid time forward_count comment_count 101 2014-07-01 2 1 102 2014-07-05 4 2 103 2014-08-10 3 3 104 2014-12-11 8 5 105 2014-07-21 4 3

table B

uid forward_count 101 0 102 0 103 0 104 0 105 0 106 0 107 0

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

CREATE TABLE C ASSELECT uid,forward_countFROM AWHERE `time` LIKE '2014-07-__'

得到table C:

uid forward_count t 101 2 102 4 105 4

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

UPDATE  B,CSET B.forward_count=C.forward_countWHERE C.uid=B.uid

得到了更新后的table B:

uid forward_count 101 2 102 4 103 0 104 0 105 4 106 0 107 0

本人犯的错

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

借用一下MySql图标

1 0