下面是我的查询,我得到一个“子查询返回超过1行”错误:
INSERT INTO billing_temp (`billing_period_id`,`soc_id`,`bill_y_n`)
VALUES(
(SELECT `id` FROM `billing_period` ORDER BY `billing_start_date` DESC LIMIT 0,1),
(SELECT `id` FROM `milk_producer` WHERE active='1'),
'N'
)
SELECT `id` FROM `billing_period` ORDER BY `billing_start_date` DESC LIMIT 0,1
返回多个值。
我希望这些多个值将插入到表中,例如:
1 03 N
2 03 N
3 03 N
答案 0 :(得分:1)
问题是你can't执行了INSERT INTO ... SELECT
和以及INSERT INTO ... VALUES
。选一个。
在您的情况下,按行插入数据时存在不合逻辑的关联 - 除非milk_producer
只有1行WHERE active='1'
。同样,如果您尝试加载多行,为什么要将内部查询LIMIT
为1个结果?
INSERT INTO billing_temp (`billing_period_id`,`soc_id`,`bill_y_n`)
SELECT `id`, ??, 'N' FROM `billing_period`
ORDER BY `billing_start_date` DESC
答案 1 :(得分:0)
您需要遍历SELECT
语句。看看游标。