如何将 SELECT 的结果添加为现有表中的新列?
Posted
技术标签:
【中文标题】如何将 SELECT 的结果添加为现有表中的新列?【英文标题】:How do I add the result of a SELECT as a new column in an existing table? 【发布时间】:2017-01-31 20:44:14 【问题描述】:在 SQL(无论您喜欢哪种变体,例如 mysql 或 MonetDB)中,它都非常直观且易于操作:
CREATE TABLE t2 AS SELECT c1 FROM t1;
并将选择结果作为新表中的新列获取。但是,如果您希望将结果作为 same 表(表t1
)中的新列怎么办?假设c1
的类型为INT
,并且可能为空。我们需要写:
ALTER TABLE t1 ADD c2 INT;
UPDATE TABLE t1 SET c2 = c1;
这是一个简单的版本,因为如果它是一个非空列,我们需要用一些值初始化新列;如果数据来自多个表,我需要在UPDATE
中进行某种内部查询(如果可能的话)。
我可以以某种方式使用单个命令选择列吗?
【问题讨论】:
【参考方案1】:你使用join
:
UPDATE t1 JOIN
t2
ON t2.? = t1.?
SET t1.c2 = t2.c1;
?
是用于标识t2
中的哪一行应该更新t1
中的哪一行的列的占位符。
【讨论】:
但我没有t2
。我只有t1
。我想避免创建t2
。以上是关于如何将 SELECT 的结果添加为现有表中的新列?的主要内容,如果未能解决你的问题,请参考以下文章