|
|
|
|
UPDATE `doc` SET `doc`.`doc_status` = 0 WHERE `doc`.doc_status <> 0 AND `doc`.`ID` = (SELECT `atached_doc`.`doc_ID` FROM `atached_doc` WHERE `atached_doc`.`ID` = valS);
|
Запрос выполняется в контексте хранимой процедуры
valS - это переменная
При выполнении вываливается ошибка "Подзапрос вернул более одной строки"
Смысл запроса в том чтоб в процессе массовой очистки таблиц (что происходит в процедуре) проставить флаг doc_status в положение "0" для всех строк в таблице `doc`, коим есть соответствие в таблице `atached_doc` по столбцу doc_ID. Т.е. подзапрос всегда будет возвращать более одной строки. Так вот как проапдейтить таблицу используя множество из подзапроса? Или есть более элегантный вариант?
Очень нужна ваша помощь.. | |
|
|