@lexstile

Почему запрос возвращает только запись по первому условию?

SELECT events.id, events.name as event_name, events.date_start, events.date_end, events.country_id, events.description, events.day_1, events.day_2, events.month_1, events.month_2, events.year_1, events.year_2, events.is_present, links.links, images.images, countries.countries, clusters.clusters FROM events
		LEFT JOIN (SELECT countries.id, event_to_country.event_id, GROUP_CONCAT(countries.name) as countries FROM countries LEFT JOIN event_to_country ON countries.id = event_to_country.country_id GROUP BY event_to_country.event_id) as countries ON events.id = countries.event_id
		LEFT JOIN (SELECT event_id, GROUP_CONCAT(link) as links FROM links GROUP BY event_id) AS links ON events.id = links.event_id
		LEFT JOIN (SELECT event_id, GROUP_CONCAT(name) as images FROM images GROUP BY event_id) AS images ON events.id = images.event_id
		LEFT JOIN keywords ON events.id = keywords.event_id
		LEFT JOIN (SELECT country_id as c_id, GROUP_CONCAT(name) as clusters FROM clusters GROUP BY c_id) AS clusters ON countries.id = c_id
		WHERE countries.id = :country_id 
		ORDER BY events.year_1 ASC
		LIMIT 30

Вот таблица связей:
5f786ed7b58cd840016776.png
Отрабатывает странно, выводит только события с первой связью.
То есть:
Если countries.id = 2 - выводится только событие с идентификатором 142, но должен и с id = 141, т. к. связь имеется.
Событие с идентификатором 141 выводится только в том случае, если передать countries.id = 8.
  • Вопрос задан
  • 91 просмотр
Решения вопроса 1
iResource
@iResource
Разработчик IR XML2Ozon
Может быть, поэтому?
GROUP BY
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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