mysql - 使用不同数据库且没有公共(public)字段的 MySQL 更新表

标签 mysql sql

我需要使用 DatabaseB.ClientTableB 更新 DatabaseA.ClientTableA 中的几行,因为到目前为止我已经尝试过这两个 ID

UPDATE DatabaseA.ClientTableA 
SET DatabaseA.ClientTableA.Field = (SELECT DatabaseB.ClientTableB.Field 
                                    FROM DatabaseB.ClientTableB
                                    WHERE DatabaseB.ClientTableB.ID = 11)
WHERE DatabaseA.ClientTableA.ID = 22

但是它不起作用,并且 phpMyAdmin 不愿意告诉我原因。自从我使用数据库以来已经有一段时间了,我一直在这里搜索,但只找到有关如何更新具有公共(public)字段的表(使用联接)的答案

提前致谢!

编辑 1

这是表格

| 数据库A |

| ClientTableA |    
________________
| id           |
| firstname    |
| Lastname     |
| company      |
| adress1      |
| adress2      |
| state        |
| city         |
| postcode     |
| country      |
| phone        |
| email        |

<强>|数据库B |

| ClientTableB |     | emailTable    |
________________     _________________
| id           |     | id            |
| firstname    |     | email         |
| Lastname     |     | pass          |
| company      |
| adress1      |
| adress2      |
| state        |
| city         |
| postcode     |
| country      |
| phone        |

注意:我从 DatabaseB 中选择电子邮件,通过 id 连接 ClientTableB 和 emailTable
注2:在DatabaseA.ClientTableA中,除了id之外,所有字段都是空的

最佳答案

首先清除 ClientTableA,然后执行以下操作:

insert into ClientTableA 
(id, firstname, Lastname, company, 
    adress1, adress2, state, city, 
    postcode, country, phone, email)
select b.id, firstname, Lastname, company, 
    adress1, adress2, state, city, 
    postcode, country, phone, email 
from ClientTableB b 
join emailTable e using (id)

或者,如果您必须“更新”以匹配“id”,请执行以下操作:

update ClientTableA a, ClientTableB b, emailTable e
set a.first_name = b.first_name, 
    a.Lastname = b.Lastname, ....
    a.email = e.email
where a.id = b.id and b.id = e.id

关于mysql - 使用不同数据库且没有公共(public)字段的 MySQL 更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37281557/

相关文章:

sql - 需要根据列值分配不同的JSON数据结构

mysql - 哪个 mysql 系统变量影响 group by 子句?

mysql - 为什么这个 "extractvalue"返回 null

mysql - 如何使用 null||d.AM_Answer 进行选择查询

Mysql 带有连接的子查询

python - 从不同的Python模块调用数据库对象

mysql - 每日考勤显示出勤不存在于另一个表中的所有员工?

mysql - 结合来自同一张表的连接和联合

c# - 可以通过查询结果获取结果集行数吗?

sql - 如何选择日期大于另一行中的日期的行?