mysql - 使用SQL迁移地址,但不同数据库的表具有不同的区域ID

标签 mysql database phpmyadmin country-codes opencart2.x

我正在使用 phpmyadmin 将网站从cubecart v3 迁移到 opencart 2.0,并且刚刚完成了最后重要的一步,

但国家和县的 ID 不同

这就是我的想法

UPDATE `oc_address` SET `country_id`=
(SELECT country_id
FROM `oc_country`
WHERE `oc_country`.`name`=`shop_old`.`CubeCart_iso_countries`.`printable_name`
AND `shop_old`.`CubeCart_iso_countries`.`id`=`shop_old`.`CubeCart_customer`.`country`
AND `oc_address`.`customer_id`=`shop_old`.`CubeCart_customer`.`customer_id`)

但我不断收到未知的列错误 我什至尝试将 iso 国家/地区表从旧数据库复制到新数据库,并指出该表以供引用,但每次我在 where 子句中得到未知的列时,我什至都得到了 oc.address.customer_id

我对 SQL 非常陌生(今天是我第一次使用),我已经迁移了其他所有内容,但我需要迁移县和国家/地区的客户地址的 zone_ID, 我更愿意保持新数据库不变,并且认为当国家/地区名称与旧表上的名称匹配并且旧表上的区域 ID 与旧客户上的区域 ID 匹配时,我可以引用新表国家/地区 ID地址表

举个例子,
旧DB=英国ID为225,安格斯ID为185,
新DB=英国ID为222,安格斯ID为3516

如何更新或插入数据以更正国家/地区和地区 ID?

提前感谢所有抽出时间回复的人 祝大家圣诞老人节快乐

最佳答案

最后 我将旧的cubecart_iso_countries表复制到新的Opencart数据库 插入所有客户地址'来自旧数据库

然后运行以下命令 更新 oc_address SET country_id = ( 选择国家 ID 来自oc_country INNER JOIN CubeCart_iso_countries ON oc_country.name = CubeCart_iso_countries.name WHERE CubeCart_iso_countries.id = oc_address.country_id )

然后它正确更新了所有客户地址中的国家/地区 ID

关于mysql - 使用SQL迁移地址,但不同数据库的表具有不同的区域ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27627335/

相关文章:

Mysql replace函数返回null

php - MAMP 和 PHPMyAdmin : #1045 - Access denied for user 'root' @'localhost' (using password: YES)

php - 上传将 PHP 变量读取为 null

php - 使用php以xml格式显示mysql查询结果

mysql - VBA脚本从MySql数据库读取时出现问题

iPhone + 服务器 + 生产规模

mysql - Windows 7 上 ruby​​ on rails 3 的问题

python - 多对多关系情况下如何选择记录与ponyorm

MySQL 查询 Hook 服务器资源 - 未使用索引

php - 无法使用 PHP 将用户添加到 MySQL 数据库,错误代码 #1064