gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 21:00:24 26 4
gpt4 key购买 nike

我需要使用 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com