【问题标题】:Column not found when trying a cross database update in mysql在 mysql 中尝试跨数据库更新时找不到列
【发布时间】:2010-11-06 05:43:02
【问题描述】:

我正在尝试将一个 mysql 数据库中的列的内容复制到另一个 mysql 数据库中的相同表中。

我正在使用:

UPDATE db1.table
SET    db1.table.name = db2.table.name, 
       db1.table.address = db2.table.address
WHERE  db1.table.id = db2.table.id;

我收到错误 1054:“where 子句”中的未知列“db2.table.id”。

两个表都有一个 id 列,所以我不确定为什么它不起作用。我以管理员身份登录,并且拥有两个数据库的完全权限。

【问题讨论】:

    标签: mysql sql sql-update mysql-error-1054


    【解决方案1】:
    UPDATE db1.table
    JOIN   db2.table
    ON     db1.table.id = db2.table.id
    SET    db1.table.name = db2.table.name, 
           db1.table.address = db2.table.address
    

    【讨论】:

    • 谢谢。正如我所希望的那样工作。
    • 请注意,您可以使用 ON db1.table.id = db2.table.id AND db1.table.id2 = db2.table.id2 之类的东西进行多连接,正如我的案子。您还可以使用 UPDATE db1.table AS tbl1 JOIN db2.table AS tbl2 之类的别名,然后在查询的其余部分中仅引用别名以保持简洁。
    猜你喜欢
    • 2013-04-30
    • 2014-04-20
    • 2017-08-05
    • 1970-01-01
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 2013-03-28
    • 2015-05-27
    相关资源
    最近更新 更多