@harasaev

Как составить запрос из 3 таблиц с group by?

SELECT `private_dialogs`.*, `users`.title, `private_messages`.text FROM `private_dialogs` LEFT JOIN `users` ON `private_dialogs`.to_id = `users`.user_id 
		LEFT JOIN `private_messages` ON `private_messages`.dialog_id = `private_dialogs`.dialog_id WHERE `private_dialogs`.`from_id` = :user_id GROUP BY `private_messages`.dialog_id

Нагромоздил я здесь фигни)) выдает ошибку
Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column
  • Вопрос задан
  • 84 просмотра
Пригласить эксперта
Ответы на вопрос 1
@retvizan
После select без групповых функций могут быть только поля по которым идет группировка (потому что для остальных неясно какое значение из группы выбирать).
Если вы точно знаете, что дублирование есть следствие join и все поля в группе одинаковы, то можно просто отключить режим ONLY_FULL_GROUP_BY.
Или лучше сразу переписать запрос корректным образом, есть как минимум 5 вариантов, см Группировка в MySQL
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы