Mysql更新值

Ser*_*gio 5 mysql

我在数据库中使用了两个表.第一个表看起来像这样:

   id    |   msg_id   |     user   |   date   
-------------------------------------------------
   01    |    122     |    user 1  | 2011-04-01
   02    |    453     |    user 2  | 2011-04-03
   03    |    124     |    user 3  | 2011-04-05
Run Code Online (Sandbox Code Playgroud)

第二个表看起来像这样:

       id    |   msg_id   |     status   | 
   ----------------------------------------
       01    |      0     |       1      | 
       02    |      0     |       1      | 
       03    |     124    |       1      | 
Run Code Online (Sandbox Code Playgroud)

我想根据第一个表中的msg_id记录更新第二个表中"0"值("msg_id"列)的所有行.是否可以使用单个查询执行此操作?

结果应如下所示:

       id    |   msg_id   |     status   | 
   ----------------------------------------
       01    |    122     |       1      | 
       02    |    453     |       1      | 
       03    |    124     |       1      | 
Run Code Online (Sandbox Code Playgroud)

Sen*_*hil 1

UPDATE table1 AS t1, table2 AS t2
SET t2.msg_id=t1.msg_id
WHERE t1.id = t2.id and t2.msg_id = 0;
Run Code Online (Sandbox Code Playgroud)