#mysql #select #count #having #select-insert
#mysql #выберите #количество #имея #выберите-вставить
Вопрос:
Извините за нелепое название!
Возможно ли запустить запрос MySQL INSERT SELECT, где часть ‘SELECT’ включает функцию COUNT() (чтобы воспользоваться предложением HAVING) — это создает несоответствующее количество столбцов в части INSERT.
Например:
INSERT INTO my_log (user_id, date_finished)
SELECT COUNT(id) AS count, user_id, '2011-05-31 00:00:00'
FROM assignments WHERE assignment_type = 10
GROUP BY user_id
HAVING count >=10
Я хочу вставить в ТАБЛИЦУ my_log дату для пользователей, которые выполнили 10 назначений типа 10. На самом деле я немного расширяю это, поэтому важно, чтобы я использовал COUNT и находил только пользователей, которые выполнили 10 или более назначений. Но моя проблема остается в том, что я пытаюсь вставить 3 столбца в объявленные 2 столбца из-за функции COUNT (), поэтому я ищу способ извлечь выгоду из ПОДСЧЕТА, но не возвращать его в моем наборе данных / учитываемом при вставке.
Спасибо за любую помощь 🙂
Ответ №1:
Попробуйте с:
INSERT INTO my_log ( user_id, date_finished)
SELECT user_id, '2011-05-31 00:00:00'
FROM assignments WHERE assignment_type = 10
GROUP BY user_id
HAVING ( COUNT(id) ) >=10