UPDATE + GROUP BY

D
На сайте с 28.06.2008
Offline
1101
288

Я правильно понимаю что GROUP BY всегда лишен смысла в запросе UPDATE?

Например запрос:

UPDATE #__firm_items c LEFT JOIN (SELECT COUNT(id) total, firm_id FROM #__pipl_working GROUP BY firm_id) ct ON (c.id = ct.firm_id) SET count_pipl = ifnull(ct.total,0)");

Судя по EXPLANE - GROUP BY вызывает лишь создание временной таблицы.

edogs software
На сайте с 15.12.2005
Offline
775
#1

Dram,

Судя по запросу group by у Вас позволяет посчитать count(id) по каждой из фирм отдельно.

Если Вы его уберете, то потеряете эти данные, которые используются в апдейте.

Разработка крупных и средних проектов. Можно с криптой. Разумные цены. Хорошее качество. Адекватный подход. Продаем lenovo legion в спб, дешевле магазинов, новые, запечатанные. Есть разные. skype: edogssoft
D
На сайте с 28.06.2008
Offline
1101
#2

Спасибо, вернул назад. Получается никак не избавиться от Using temporary при GROUP BY firm_id?

---------- Добавлено 13.01.2019 в 14:54 ----------

Заменил LEFT на RIGHT + добавил WHERE firm_id != 0 в итоге нет временной таблицы и выполнение чуть быстрее

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий