Судя по вашему вопросу, похоже, что запрос работал до обновления MySql
.После того как вы обновили MySql
, были применены настройки по умолчанию, что означает, что Only_Full_Group_By
включен.Следовательно, если вы хотите выполнить запросы, подобные тому, о котором идет речь, когда неагрегированные столбцы в списке Select
отсутствуют в предложении group by
, вам необходимо отключить Only_Full_Group_By
.
Выполнить оператор ниже и выполнитьВаш запрос еще раз:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
Предупреждение. Это следует делать только в том случае, если вы уверены, что другие неагрегированные столбцы в списке выбора уникальны для каждого tnumber
, иначе вы получите случайные строки в видерезультат.
Ниже приводится цитата из MYSQL 8.0 Manual:
MySQL реализует обнаружение функциональной зависимости.Если включен режим SQL ONLY_FULL_GROUP_BY (который по умолчанию), MySQL отклоняет запросы, для которых список выбора, условие HAVING или список ORDER BY ссылаются на неагрегированные столбцы, которые не названы в предложении GROUP BY и функционально не зависят от них..
Если ONLY_FULL_GROUP_BY отключен, расширение MySQL к стандартному использованию SQL GROUP BY позволяет списку выбора, условию HAVING или списку ORDER BY ссылаться на неагрегированные столбцы, даже если столбцы функционально не зависят от GROUP.BY столбцы.Это заставляет MySQL принять предыдущий запрос.В этом случае сервер может выбрать любое значение из каждой группы, поэтому, если они не совпадают, выбранные значения являются недетерминированными, что, вероятно, не то, что вам нужно.Кроме того, на выбор значений из каждой группы нельзя повлиять, добавив предложение ORDER BY.Сортировка набора результатов происходит после выбора значений, и ORDER BY не влияет на то, какое значение в каждой группе выберет сервер.Отключение ONLY_FULL_GROUP_BY полезно прежде всего, когда вы знаете, что из-за некоторого свойства данных все значения в каждом неагрегированном столбце, не названном в GROUP BY, одинаковы для каждой группы.
FOR Подробнее, Нажмите здесь .