2017-01-13 43 views
1

我有一个联合声明:插入到表,其中列的值是从联合声明

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) 

有谁知道这可以实现?

回答

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 
+0

我已经扩展了插入语句的复杂性.. – Kurtiss

+0

@Kurtiss,什么是x,y,z在这里。另一个查询的静态值,变量或其他输出? –

+0

x,y,z只是作为例子,它们可以指代任何东西;我的主要焦点是如何插入联合声明的结果.. – Kurtiss

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) 

当你把这个简单的声明,你有任何错误?

+0

是我的第一次尝试,说它无法执行到期的声明在这种情况下给出的名称(即列)是非法的.. – Kurtiss

+0

我没有得到这个错误...你可能想给第二次尝试。 –

+0

我刚刚做了,仍然不喜欢T-T – Kurtiss