Mysql 从一行中的多个表更新变量

Mysql 从一行中的多个表更新变量,mysql,set,sql-update,mariadb,Mysql,Set,Sql Update,Mariadb,我有两个数据库,我需要将变量'birth'从一行更新到另一行,检查'name'(从db1到db2) 问题是,第二个db中的“name”变量位于另一个表中(表2)。 可以在不改变数据库结构的情况下,使用“id”变量从db2进行同步吗 UPDATE `db1`.`table1`, `db2`.`table2` SET `db2`.`table1`.`birthday` = `db1`.`table1`.`birthday` WHERE `db2`.`table1`.`name` ... 方案:

我有两个数据库,我需要将变量'birth'从一行更新到另一行,检查'name'(从db1到db2)

问题是,第二个db中的“name”变量位于另一个表中(表2)。 可以在不改变数据库结构的情况下,使用“id”变量从db2进行同步吗

UPDATE `db1`.`table1`, `db2`.`table2` SET `db2`.`table1`.`birthday` = `db1`.`table1`.`birthday` WHERE `db2`.`table1`.`name` ... 
方案:

 db1-> table1 -> name,birthday
 db2-> table1 -> name,id     
       table2 -> birthday,id

非常感谢你!它工作得很好。但当我尝试在两个数据库(从一台服务器)之间进行更新时,我无法做到这一点。即使指定了完整路径(
dbname
),我也有错误1046(3D000):未选择任何数据库。我发现了此错误。如果它真的是一个bug,那就太糟糕了。我的错是,我的DB名称中有一个点,当我想更新
DB.2
table2
时,我得到了错误1146(42S02):表“DB.2.table2”不存在。但是在SELECT和其他中都可以正常工作。如果DB名称中有一个点(或其他特殊字符),则必须在其周围加上反勾。我想不出为什么在
UPDATE
SELECT
中会有不同的工作方式。
UPDATE `db.1`.table1 AS t11
JOIN `db.2`.table1 AS t21 ON t11.name = t21.name
JOIN `db.2`.table2 AS t22 ON t21.id = t22.id
SET t11.birthday = t22.birthday