根据ID匹配将列从一个表更新到另一个表

时间:2015-09-18 12:01:44

标签: mysql

我在同一个数据库中有两个表,名称为table1和table2。我需要的是我必须从table1复制选定的列并根据ID匹配更新table2中的那些列。我所做的是:

      $sql = " UPDATE table2, table1 SET table2.column1= table1.column1
            where table1.primarykey= table2.primarykey && primarykey= 1 ";

此查询不会抛出任何错误,但不会更新。我是mysql字段中的纯初学者。任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

您的查询有错误。第二个primarykey引用需要一个表别名;否则,它是模棱两可的。

我建议使用显式join语法编写查询:

UPDATE table2 JOIN
       table1
       ON  table1.primarykey = table2.primarykey 
    SET table2.column1 = table1.column1
    WHERE table1.primarykey = 1 ;

因为你没有发现这个错误。我还建议在应用程序层运行SQL语句时检查错误。

答案 1 :(得分:0)

你可以试试这个:

sql_query = UPDATE table1 t1, table2 t2
SET t1.field1 = t2.field1, t1.field2 = t2.field2 WHERE t1.id = t2.id;

答案 2 :(得分:0)

使用子查询稍作修改:

$sql = " UPDATE table2 SET table2.column1= ( SELECT table1.column1 from table1
        where table1.primarykey= table2.primarykey && primarykey= 1 )";