插入到表中,其中列值来自union语句

时间:2017-01-13 10:41:23

标签: sql insert union

我有一份工会声明:

SELECT MAX(col + 1) FROM
(SELECT col FROM table_1
UNION ALL
SELECT col FROM table_2) AS alias

我想将此声明作为插入的一部分包括在内。

INSERT INTO table(col_1, col_2, col_3, col_4) VALUES(x, y, (the union statement), z)

有谁知道如何实现这一目标?

2 个答案:

答案 0 :(得分:1)

在您的选择查询中也包括其他列(x,y)。如果x,y是静态值,那么您可以直接添加该值,否则您可以更改查询以包含其他x,y列。

INSERT INTO table(col_1, col_2, col_3)
SELECT x, y,MAX(col + 1) ,z
FROM    (SELECT col FROM table_1
        UNION ALL
        SELECT col FROM table_2
    ) AS alias

答案 1 :(得分:0)

我刚刚使用了你提供的脚本并且它有效。

INSERT INTO table(col_1, col_2, col_3, col_4) VALUES(x, y, (SELECT MAX(col +1) FROM
    (SELECT col FROM table_1
    UNION ALL
    SELECT col FROM table_2) AS alias), z)

当你提出这个简单的陈述时,你有任何错误吗?