繁体   English   中英

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

[英]Column update from one Table to another based on a ID match

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

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

这个查询没有引发任何错误,但没有更新。我是mysql领域的纯粹初学者。 谁能帮我吗 ?

您的查询有错误。 第二primarykey参考需要一个表别名; 否则,就模棱两可。

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

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

因为您没有捕获此错误。 我还建议您在应用程序层运行SQL语句时检查错误。

您可以尝试以下方法:

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

子查询稍作修改:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM