根据两个表中的条件更新sql中的查询

时间:2013-12-04 07:20:48

标签: mysql sql

我需要构建一个更新查询。我现有的代码看起来像这样。

update table1 
set data_plan=(select d.data_plan from table1 m,table2 d 
               where m.msidn = d.msidn and m.data_plan!=d.data_plan);

表1 msisdn data_plan 表2 也有相同的列。我想更新 table1 data_plan 列,具体取决于我通过select查询获得的某些条件。但是当我运行代码时,我得到了这个错误。

  

您无法在FROM子句

中为更新指定目标表'msisdn1'

2 个答案:

答案 0 :(得分:0)

以这种方式试试

update table1 m join table2 d
    on m.msidn = d.msidn 
   and m.data_plan != d.data_plan
   set m.data_plan = d.data_plan

答案 1 :(得分:0)

试试这个......

  UPDATE table1 SET m.data_plan=d.data_plan
  FROM table1 m
  INNER JOIN table2 d ON m.msidn = d.msidn and m.data_plan!=d.data_plan