LEFT JOIN Дублирует поля [MySQL]

143
19 ноября 2019, 22:00

Столкнулся с проблемой дублирования полей при использовании LEFT JOIN в MySQL запросе.

SELECT topics.topic_id, topics.topic_subject, topics.topic_by, topics.topic_date, topics.topic_views 
FROM topics 
LEFT JOIN categories
ON topics.topic_cat = categories.cat_id 
LEFT JOIN posts
ON topics.topic_id = posts.post_topic
WHERE categories.cat_id = 1
ORDER BY posts.post_date DESC;

По идее, данный запрос должен выводить топики с сортировкой по последнему по времени посту в них. Он их выводит, но дублирует в зависимости от количества постов внутри топиков. Искал готовое решение, смотрел GROUP BY, но не понял как применить это в данном случае :<

Как решить эту проблему?

Answer 1

Проблема решена. Спасибо @Mike

В group by указывайте все поля, которые выбираете в select, а в order by берите max(posts.post_date) вам же надо отсортировать по дате самого последнего поста ? И таблица categories в запросе вообще не нужна, в where спокойно можно проверять topics.topic_cat=1

READ ALSO
Проблема с переносом текста

Проблема с переносом текста

проблема, собственно, в коде, почему не переносится текст? Слово: "Русагроимпортом" выходит за пределы и не переносится

125
Отобразить Dropdown в Navbar

Отобразить Dropdown в Navbar

Не отображается Dropdown в Navbar, пример брал готового шаблона bootstrap, там всё отображается нормально, но у меня после нескольких нажатий на стрелочку...

142
Как добавить #document в &lt;iframe&gt;?

Как добавить #document в <iframe>?

Просмотрел все похожие вопросы

180
Содержимое слайда тоже перемещалось

Содержимое слайда тоже перемещалось

Окончательно запуталась, нужно, чтобы на каждом слайде был свой текст и кнопкау меня либо все тексты на одном сладйе, либо все тексты на всех...

149