我在同一个数据库中有两个表,名称为table1和table2。我需要的是我必须从table1复制选定的列并根据ID匹配更新table2中的那些列。我所做的是:
$sql = " UPDATE table2, table1 SET table2.column1= table1.column1
where table1.primarykey= table2.primarykey && primarykey= 1 ";
此查询不会抛出任何错误,但不会更新。我是mysql字段中的纯初学者。任何人都可以帮助我吗?
答案 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 )";