我的数据库中有一个表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中)。
答案 0 :(得分:1)
您可以基于另一个表创建表,并使用CREATE TABLE ... SELECT命令填充它。但是,这不适用于ALTER TABLE命令。
如果要向表中添加新列并从另一个表填充它,则需要分两步执行:
发出ALTER TABLE ... ADD COLUMN ...命令。如果要添加多个列,则需要发出多个ALTER TABLE命令。
发出UPDATE语句以更新新字段的值。更新可以从其他表中选择值。
另一种方法是使用CREATE TABLE ... SELECT语句创建第3个表,其中将select中2个表中的数据与连接组合在一起。