左连接到现有表

时间:2015-11-19 10:39:43

标签: mysql left-join

我的数据库中有一个表A,我希望通过从另一个表B添加新列来改变它。我遇到的问题是,如果我创建一个新表或没有表,左连接可以正常工作。例如,以下查询有效:

select * from TABLE_A left join TABLE_B on TABLE_A.ID=TABLE_B.ID

然而,当我使用alter时,我收到一条错误消息。以下行生成错误消息1064(SQL语法错误):

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

使用左连接将列添加到现有表的正确语法是什么?

非常感谢。

编辑:为了使事情更清楚: 表A具有列A1和A2以及ID。我想使用密钥ID添加表B中的列B1和B2(列ID也在B中)。

1 个答案:

答案 0 :(得分:1)

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

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

  1. 发出ALTER TABLE ... ADD COLUMN ...命令。如果要添加多个列,则需要发出多个ALTER TABLE命令。

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

  3. 另一种方法是使用CREATE TABLE ... SELECT语句创建第3个表,其中将select中2个表中的数据与连接组合在一起。