Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 用select更新_Mysql_Sql - Fatal编程技术网

Mysql 用select更新

Mysql 用select更新,mysql,sql,Mysql,Sql,我有一个表'oldTable',其中包含city字段id、city和邮政编码 此表是我实际用于用户定义其城市的表,但我想升级此表,以便加载一个包含所有城市的新表 此新表“newTable”包含字段id、旧id、城市和邮政编码 我想在“newTable”的“old_id”字段中输入对应于“oldTable”所在城市的id,因此我执行以下sql: UPDATE newTable SET old_id = oldTable.id FROM oldTable WHERE oldTable.city= n

我有一个表'oldTable',其中包含city字段id、city和邮政编码

此表是我实际用于用户定义其城市的表,但我想升级此表,以便加载一个包含所有城市的新表

此新表“newTable”包含字段id、旧id、城市和邮政编码

我想在“newTable”的“old_id”字段中输入对应于“oldTable”所在城市的id,因此我执行以下sql:

UPDATE newTable
SET old_id = oldTable.id
FROM oldTable
WHERE oldTable.city= newTable.city
AND oldTable.postal_code = newTable.postal_code
但我有一个错误:
您的sql语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解可在“FROM oldTable WHERE…”附近使用的正确语法。MySQL中使用
join
进行
更新的正确语法为:

UPDATE newTable JOIN
       oldTable
       ON oldTable.city = newTable.city AND
          oldTable.postal_code = newTable.postal_code
    SET newTable.old_id = oldTable.id;

谢谢,这是我的作品,我已经尝试加入,但我没有把布景放在好地方。