1. 程式人生 > >MySql中用一張表的資料更新另一張表的部分資料

MySql中用一張表的資料更新另一張表的部分資料

寫在前面

昨天本人用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 AS
SELECT uid,forward_count
FROM A
WHERE `time`
LIKE '2014-07-__'

得到table C:

uid forward_count t
101 2
102 4
105 4

然後用table C資料更新table B:

UPDATE  B,C
SET B.forward_count=C.forward_count
WHERE 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圖示