powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SELECT + UPDATE
9 сообщений из 9, страница 1 из 1
SELECT + UPDATE
    #39477856
chiffacff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый. Что то никак не могу вкурить в чем ошибка запроса:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
UPDATE goods AS tbl_1
    INNER JOIN(
        SELECT goods_id, (round((count_from+count_to)/2, 2)) AS cnt
        FROM ingredients where menu_id = 2 and count_to <= (select `count` from goods where id = goods_id)
       
    ) AS tbl_2 
SET tbl_1.`count` = (tbl_1.`count`- tbl_2.cnt)
where tbl_1.id = tbl_2.goods_id



Ошибка: (1172): Result consisted of more than one row


Код: sql
1.
2.
  SELECT goods_id, (round((count_from+count_to)/2, 2)) AS cnt
        FROM ingredients where menu_id = 2 and count_to <= (select `count` from goods where id = goods_id)


возвращает
2;11

Код: sql
1.
select id, `count` from goods where id = 2 


2;2527

подскажите, что не так?..... заранее благодарен
...
Рейтинг: 0 / 0
SELECT + UPDATE
    #39478105
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chiffacffчто не так?
То, что подзапрос вернул одну запись - это просто набор данных такой... формально-то там может оказаться и более одной записи. Добавьте группировку или лимит.
И неплохо бы каждому полю добавить алиас таблицы.
...
Рейтинг: 0 / 0
SELECT + UPDATE
    #39478125
chiffacff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ!

Akinachiffacffчто не так?
формально-то там может оказаться и более одной записи.


может... а как тогда апедейтить если select возвращает множественный результат?
...
Рейтинг: 0 / 0
SELECT + UPDATE
    #39478143
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chiffacffкак тогда апедейтить если select возвращает множественный результат?Условие связывания переместите из WHERE в ON...
...
Рейтинг: 0 / 0
SELECT + UPDATE
    #39478197
chiffacff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

типа так?....
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
UPDATE goods AS tbl_1
    INNER JOIN(
        SELECT a1.goods_id, (round((a1.count_from+a1.count_to)/2, 2)) AS cnt
        FROM ingredients a1
       
    ) AS tbl_2 on tbl_2.menu_id = 2 and tbl_2.count_to <= (select a2.`count` from goods a2 where a2.id = tbl_2.goods_id)
SET tbl_1.`count` = (tbl_1.`count`- tbl_2.cnt)
where tbl_1.id = tbl_2.goods_id;



тогда ошибка: Table 'tbl_1' is specified twice, both as a target for 'UPDATE' and as a separate source for data
...
Рейтинг: 0 / 0
SELECT + UPDATE
    #39478293
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет, типа так:

Код: sql
1.
2.
3.
4.
5.
6.
UPDATE goods AS tbl_1
    INNER JOIN(
        SELECT goods_id, (round((count_from+count_to)/2, 2)) AS cnt
        FROM ingredients where menu_id = 2 and count_to <= (select `count` from goods where id = goods_id)       
    ) AS tbl_2 ON tbl_1.id = tbl_2.goods_id
SET tbl_1.`count` = (tbl_1.`count`- tbl_2.cnt)
...
Рейтинг: 0 / 0
SELECT + UPDATE
    #39478485
chiffacff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina,

все равно Result consisted of more than one row
...
Рейтинг: 0 / 0
SELECT + UPDATE
    #39478489
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DDL в студию.
...
Рейтинг: 0 / 0
SELECT + UPDATE
    #39478516
chiffacff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БЛИИИИИИИИИИИИН, оказалось "появился" триггер который "делал" SELECT INTO именно он и отщелкивал, а не запрос....

всем спасибо за помощь...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / SELECT + UPDATE
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]