此问题在此处已有答案:
Insert into ... values ( SELECT ... FROM ... )(27个回答)
19天前关闭
假设我有一个包含多行数据的表table1
。
table1:
=======
id: | value:
------------
1 | 10
2 | 20
3 | 30
字符串
另一个表,我刚刚创建的,包含两列:
table2:
=======
id: | value1: | value2:
-----------------------
型
有没有可能将table1
中的行重写,使用这些值插入到table2
中?
这本质上是一个复制操作,插入一些额外的固定数据。
下面是我尝试过的:
insert into table2 (value1, value2)
values
(
(select value from table1),
100
);
型
这不起作用,因为预期的原因:
ERROR: more than one row returned by a subquery used as an expression
型
一个可能的解决方案是逐步创建表,一次添加1列。但是,假设这是不可能的,可以用另一种方法吗?
我认为可以通过内部连接来“扩展”table1
以获得所需的列数,但我也不认为这是正确的方法。
insert into table2 (value1, value2)
values (select value1, value2 from table1 inner join 100) -- not quite right, want value2 to be set to 100
型
我们的想法是做一些类似于Python/Pandas“广播”的事情。
也许可以使用临时table。
简单的非SQL方式显然是写一个Python脚本。
1条答案
按热度按时间d7v8vwbk1#
可以使用insert-select语句,其中
100
是选择列表中的文字:字符串