Проблема во вложенном запросе Mysql вопрос
Ниже мой запрос, и я получаю ошибку "Подзапрос возвращает более 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
2 ответа
Проблема в том, что вы не можете выполнить 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
Вам нужно перебрать SELECT
заявление. Посмотрите на курсоры.