我试图将 SQL 从一个脚本迁移到另一个脚本,即只是其中的一部分,但它们使用不同的“代码”。
基本上我试图移动“状态”的信息,这些信息在两个数据库中都作为一个数字保存。但是数字当然是不同的,例如亚利桑那州的一个是 12,另一个是 3425。
我试图找到一种方法来首先匹配两者中相同的客户 ID,然后从一个 DB 中获取数字,然后将其转换为它在新 DB 中的数字,并将其放在所述 DB 中的正确区域。
但是我的 SQL 技能非常缺乏,我找不到合理的解决方案。
正在使用的脚本:旧 - CRE 加载 4.2.1a 新 - OpenCart(当前版本)
编辑
这是我最好的解释数据库结构,如果它不是对数据库工作方式的最佳解释,请原谅:
这是所涉及的表的旧数据库结构:
address_book - 保存客户信息,州编号以数字格式保存在列 entry_zone_id 中,国家编号也以数字格式保存在 entry_country_id 中,“区域 ID”基于“国家 ID”,具体取决于国家/地区。
zone - 保存州和国家/地区 ID 信息,示例:对于 arizona,zone_id 为 4,zone_country_id 为 223(对于美国),zone_code 为 AZ,Zone_name 为 Arizona
客户 - 这包含主要的客户信息,不包括地址信息,customers_id 当然是与表地址簿中相同的客户 ID 对应的客户 ID 号。customers_default_address_id 也与 address_book 中的 ID 相对应。
现在至于新数据库:
oc_address - address_id 和 customer_id 标记客户 ID 号。country_id 告诉他们在哪个国家,它的数字格式。zone_id 保存状态的数据库编号。
oc_zone - "zone_id" 保存 Zones ID,"country_id" 保存国家 ID 号,例如 USA 是。“name”是州名。“代码”州或国家代码。示例:数据库中的 Arizona 显示如下:zone_id=3616,country_id=223,name=Arizona,code=AZ,status=1(显示已使用)
可能还需要知道一个:oc_country - 保存国家信息,country_id 保存国家代码,name 是国家名称,isa_code_2 和 iso_code_3 是国家 ISO 代码。
我希望这是有用的。