Mysql 左联接到现有表

Mysql 左联接到现有表,mysql,left-join,Mysql,Left Join,我的数据库中有一个表a,我想通过从另一个表B中添加新列来修改它。我遇到的问题是,如果我创建一个新表或不创建表,左连接可以完美地工作。例如,以下查询起作用: select * from TABLE_A left join TABLE_B on TABLE_A.ID=TABLE_B.ID 但是,当我使用alter时,会收到一条错误消息。以下行生成错误消息1064(SQL语法错误): 或 使用左联接向现有表中添加列的正确语法是什么 非常感谢 编辑:要使事情更清楚: 表A有列A1、A2和ID。我想使用

我的数据库中有一个表a,我想通过从另一个表B中添加新列来修改它。我遇到的问题是,如果我创建一个新表或不创建表,左连接可以完美地工作。例如,以下查询起作用:

select * from TABLE_A left join TABLE_B on TABLE_A.ID=TABLE_B.ID
但是,当我使用alter时,会收到一条错误消息。以下行生成错误消息1064(SQL语法错误):

使用左联接向现有表中添加列的正确语法是什么

非常感谢

编辑:要使事情更清楚:
表A有列A1、A2和ID。我想使用键ID(列ID也在B中)从表B中添加列B1和B2。

您可以基于另一个表创建一个表,并使用命令填充它。但是,这不适用于ALTERTABLE命令

如果要向表中添加新列并从另一个表中填充,则需要分两步执行:

  • 发出命令。如果要添加多个列,则需要发出多个ALTERTABLE命令

  • 发出UPDATE语句以更新新字段的值。更新可以从其他表中选择值


  • 另一种方法是使用create table创建第三个表。。。SELECT语句,将SELECT中的两个表中的数据与联接组合在一起

    将列添加到特定表中而不是添加到join中,您的目标到底是什么
    alter
    是DDL和
    select
    DML
    @MiHai:是的,但是您使用联接来添加表??您需要先更改表,然后执行sql更新来设置新字段的值。谢谢,这是正确的方向。我在过去创建了新表,我厌倦了这种方法。如果没有一步解决方案,我会赞成你的第一种方法。你能概述一下第二个更新步骤是什么样的吗?我尝试更新TABLE_A set ID_NEW=TABLE_B.ID,其中TABLE_A.ID=TABLE_B.ID,但收到错误消息TABLE_B.ID未知。。。
    alter TABLE_A as select * from TABLE_A left join TABLE_B on TABLE_A.ID=TABLE_B.ID
    
    alter TABLE_A from TABLE_A left join TABLE_B on TABLE_A.ID=TABLE_B.ID