如何将SELECT的结果添加为现有表中的新列?

时间:2017-01-31 20:44:15

标签: mysql sql create-table select-into

在SQL中(无论你喜欢哪种类型,比如MySQL或MonetDB),它都非常直观和直接:

CREATE TABLE t2 AS SELECT c1 FROM t1;

并将选择结果作为新表中的新列。但是,如果您希望将结果作为相同表(表t1)中的新列,该怎么办?我们假设c1的类型为INT,可能为null。我们需要写:

ALTER TABLE t1 ADD c2 INT;
UPDATE TABLE t1 SET c2 = c1;

这就是简单版本,因为如果它是一个非空列,我们需要用一些值初始化新列;如果数据来自多个表格,我需要UPDATE中的某种内部查询(如果可能的话)。

我可以用某个命令以某种方式选择一个列吗?

1 个答案:

答案 0 :(得分:1)

您使用join

UPDATE t1 JOIN
       t2
        ON t2.? = t1.?
   SET t1.c2 = t2.c1;

?是用于标识t2中哪一行应更新t1中哪一行的列的占位符。