#1111 - Invalid use of group function

103
15 марта 2022, 09:20

Пытаюсь выполнить запрос. Запрос должен полю users.cases присвоить количество записей для каждого юзера которые есть в таблице inventory по каждому из юзеров в диапазоне id юзеров 1 и 30

UPDATE users usr
LEFT OUTER JOIN inventory inv 
    ON usr.id = inv.user
SET usr.cases = COUNT(inv.id)
WHERE usr.id BETWEEN 1 AND 300

не понимаю, в чем ошибка. #1111 - Invalid use of group function

Answer 1

Вы можете использовать следующий вариант запроса:

UPDATE users usr
LEFT JOIN (
    -- Суммируем количество записей по юзеру
    SELECT inv.user userid, COUNT(inv.id) AS cnt
    FROM inventory inv 
    WHERE inv.user BETWEEN 1 AND 300
    GROUP BY inv.user
) s ON usr.id = s.userid
-- Обновляем данные юзера
SET usr.cases = IFNULL(s.count, 0) -- Обнуляем NULL -> 0
WHERE usr.id BETWEEN 1 AND 300
READ ALSO
Стек для web разработки на java

Стек для web разработки на java

Посоветуйте какой стек сейчас популярен для web разработки на java, и с чего лучше начать учить

153
Как создать два FileProvider?

Как создать два FileProvider?

Для сохранения файлов внутри приложения использую FileProviderВ Manifest прописываю следующее:

117
Запись и чтение из файла

Запись и чтение из файла

Не получается чтение из файла в который я записал данные

80