dmitrydeco
@dmitrydeco

Как правильно составить sql-запрос на выборку значений?

Здравствуйте. Есть 3 таблицы: посты (posts), теги (tags) и промежуточная post_tag (post_id, tag_id).

У меня возникла проблема с реализацией следующего:
В поиске возможно будет выбрать сразу несколько тегов, к примеру: вывести все посты, в которых есть теги под id 1 и 2, но, слева будет фильтр, показывающий количество постов под тегами, которые так же можно выбрать. Поясняю: у поста с ID 1 есть теги 1,2,3, у поста с ID 2 теги 1,2,3,4, и нужно юзеру показать количество постов, если он выберет допом какой-либо тег, к примеру: если выберет 3, то будет два поста, а если 4 - один.

Мысли остановились на выводе одновременной выборки нескольких тегов:
SELECT * FROM posts t
LEFT JOIN post_tag pt1 ON posts.id = pt1.post_id
LEFT JOIN post_tag pt2 ON posts.id = pt2.post_id
WHERE pt1.tag_id = 1 AND pt2.tag_id = 2


Как такое реализовать? Заранее благодарю.

UPD: некоторые умельцы указывают, что этот вопрос простой. Предлагайте свои версии решения этого вопроса :)
  • Вопрос задан
  • 106 просмотров
Пригласить эксперта
Ваш ответ на вопрос

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

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