左连接到现有 table
Left join to existing table
我的数据库中有一个 Table A,我想通过添加另一个 table B 的新列来更改它。我遇到的问题是,如果我创建左连接,它会完美地工作一个新的 table 或没有 table。例如,以下查询有效:
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
使用左联接向现有 table 添加列的正确语法是什么?
非常感谢。
编辑:为了让事情更清楚:
Table A 有 A1 和 A2 列,以及 ID。我想使用密钥 ID(列 ID 也在 B 中)从 Table B 添加列 B1 和 B2。
您可以基于另一个 table 创建一个 table 并使用 CREATE TABLE ... SELECT 命令填充它。但是,这不适用于 ALTER TABLE 命令。
如果您想向 table 添加一个新列并从另一个 table 填充它,那么您需要分两步完成:
发出ALTER TABLE ... ADD COLUMN ...命令。如果要添加多列,则需要发出多个 ALTER TABLE 命令。
发出 UPDATE 语句更新新字段的值。更新可以 select 来自其他 table 的值。
另一种方法是使用 CREATE TABLE ... SELECT 语句创建第 3 个 table,在该语句中,您将 table 中的 2 个数据组合在一起 select 加入。
我的数据库中有一个 Table A,我想通过添加另一个 table B 的新列来更改它。我遇到的问题是,如果我创建左连接,它会完美地工作一个新的 table 或没有 table。例如,以下查询有效:
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
使用左联接向现有 table 添加列的正确语法是什么?
非常感谢。
编辑:为了让事情更清楚: Table A 有 A1 和 A2 列,以及 ID。我想使用密钥 ID(列 ID 也在 B 中)从 Table B 添加列 B1 和 B2。
您可以基于另一个 table 创建一个 table 并使用 CREATE TABLE ... SELECT 命令填充它。但是,这不适用于 ALTER TABLE 命令。
如果您想向 table 添加一个新列并从另一个 table 填充它,那么您需要分两步完成:
发出ALTER TABLE ... ADD COLUMN ...命令。如果要添加多列,则需要发出多个 ALTER TABLE 命令。
发出 UPDATE 语句更新新字段的值。更新可以 select 来自其他 table 的值。
另一种方法是使用 CREATE TABLE ... SELECT 语句创建第 3 个 table,在该语句中,您将 table 中的 2 个数据组合在一起 select 加入。