powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Update from select count(*) и Where в подзапросе
10 сообщений из 10, страница 1 из 1
Update from select count(*) и Where в подзапросе
    #38910456
boroff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Был у меня такой запрос в MySQL

Код: sql
1.
UPDATE brand AS b SET b.products_quantity = (SELECT COUNT(*) FROM product AS p WHERE b.id = p.brand_id)



которым я обновлял количество товаров для каждого бренда. При переносе на PostgreSQL запрос работать перестал. Пробовал переписать так

Код: sql
1.
2.
3.
UPDATE brand SET brand.products_quantity = p.num_products
FROM
(SELECT COUNT(*) FROM product WHERE brand.id = product.brand_id) p



выдает что нельзя ссылаться из этой части запроса на другую таблицу
Код: sql
1.
2.
3.
4.
ERROR:  invalid reference to FROM-clause entry for table "brand"
LINE 3: (SELECT COUNT(*) FROM product WHERE brand.id = product.brand...
                                            ^
HINT:  There is an entry for table "brand", but it cannot be referenced from this part of the query.



Есть ли какая то возможность переписать это все в один запрос?
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38910473
[quot boroff]Был у меня такой[quot]так а что говорит-то?
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38910476
boroff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
денормальное злотак а что говорит-то?
MySQL ничего не говорит, т.к. нормально отрабатывает и обновляет всю таблицу brands. PostgreSQL ошибку я описал в первом посте.
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38910518
Ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ы
Гость
boroff, вам сюда .
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38910772
boroff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ыboroff, вам сюда .

According to the standard, the column-list syntax should allow a list of columns to be assigned from a single row-valued expression, such as a sub-select:

Код: sql
1.
2.
3.
UPDATE accounts SET (contact_last_name, contact_first_name) =
    (SELECT last_name, first_name FROM salesmen
     WHERE salesmen.id = accounts.sales_id);


This is not currently implemented — the source must be a list of independent expressions.

Some other database systems offer a FROM option in which the target table is supposed to be listed again within FROM. That is not how PostgreSQL interprets FROM. Be careful when porting applications that use this extension.
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38910845
Упдате
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
boroffденормальное злотак а что говорит-то?
MySQL ничего не говорит, т.к. нормально отрабатывает и обновляет всю таблицу brands. PostgreSQL ошибку я описал в первом посте.а подумать, зачем мне ТвойSQL? То, что ты, изобретая свой синтаксис, и так понятно. впрочем, обладая толикой мозга и тему то заводить не пришлось бы.
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38911259
Ы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ы
Гость
boroff,

вы прочитайте полностью, а не только ту часть, где написано, что привычный вам синтаксис not implemented.

Подсказка: CTE + UPDATE … FROM
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38911300
Ывы прочитайте полностью, а не только ту часть, где написано, что привычный вам синтаксис not implemented.привычный ему синтаксис как раз implemented.
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38911496
andzhi4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рискну предположить, что вот так должно работать:

Код: sql
1.
UPDATE brand AS b SET products_quantity = (SELECT COUNT(*) FROM product AS p WHERE b.id = p.brand_id)
...
Рейтинг: 0 / 0
Update from select count(*) и Where в подзапросе
    #38917914
boroff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andzhi4,

сработало, спасибо.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / PostgreSQL [игнор отключен] [закрыт для гостей] / Update from select count(*) и Where в подзапросе
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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