Задать вопрос
@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
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Средний Комментировать
Помогут разобраться в теме Все курсы
  • Shultais Education
    Основы SQL
    3 месяца
    Далее
  • Shultais Education
    Продвинутый SQL
    1 месяц
    Далее
  • Merion Academy
    Основы реляционных баз данных SQL
    1 месяц
    Далее
Пригласить эксперта
Ответы на вопрос 1
@retvizan
После select без групповых функций могут быть только поля по которым идет группировка (потому что для остальных неясно какое значение из группы выбирать).
Если вы точно знаете, что дублирование есть следствие join и все поля в группе одинаковы, то можно просто отключить режим ONLY_FULL_GROUP_BY.
Или лучше сразу переписать запрос корректным образом, есть как минимум 5 вариантов, см Группировка в MySQL
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы