更正错误的insert-from-select SQL语句

时间:2015-05-23 12:13:12

标签: mysql sql

这是一个mysql语句,你能否告诉它有什么问题

insert into wip_inventory
(wip_inventory.amount)
values (
  select
  sum(planning.actual_cost) as c
  from planning
  where planning.progress='no'
)

2 个答案:

答案 0 :(得分:1)

使用values(一个用于values列表,一个用于子查询),您需要两组括号来表达此逻辑。但是,无论如何,这个关键字是多余的:

insert into wip_inventory (wip_inventory.amount)
    select sum(planning.actual_cost) as c
    from planning
    where planning.progress = 'no';

答案 1 :(得分:0)

在您的查询中,只有一条记录将添加到wip_inventory,如果子查询返回多条记录,则会抛出错误。 我想您正在尝试插入从子查询返回的所有记录,因此请使用INSERT INTO SELECT

insert into wip_inventory (wip_inventory.amount) 
select sum(planning.actual_cost) as c 
from planning 
where planning.progress='no'