我尝试插入带有1列的表(从表中选择)。
我应该将所有id复制到table1,其中1列是(从表中选择)
这不起作用:
insert into table1 (id,resoucrce,rate) values ((select id from table2),0,0)
我想做的事情是将表中的所有id插入到具有默认值的另一个表中。
答案 0 :(得分:4)
使用insert . . . select
:
insert into table1 (id, resource, rate)
select id, 0, 0
from table2;
答案 1 :(得分:2)
要将一个表的内容复制到同一个数据库中的另一个表,请使用以下命令: -
INSERT INTO TARGET_TABLE (`col1`,`col2`) SELECT `col1`,`col2` FROM SOURCE_TABLE;
或您的查询: -
Insert into table1 (id, resource, rate) select id, 0, 0 from table2;
答案 2 :(得分:0)
您应该关注"值" 关键字;
values ((select id from table2),0,0)
当您使用值(,,,)时,您必须指定值列。但您尝试同时传递结果集和单个值在一起。这就是你收到错误的原因。你应该只传递单个值......
如果它清楚你;你可以很容易地找到正确的sql语法。