Ответы пользователя по тегу SQL
  • Как получить похожие записи по тегам через промежуточную таблицу?

    e_s_l
    @e_s_l
    Full-stack web developer
    на сколько я понял, нужно выбрать все посты, у которых теги максимально соответствуют тегам текущего поста (причем самые похожие должны быть сверху)
    select p.*, count(pt.id) similar_tags_count
    from posts p
    inner join posts_tags pt on pt.post_id = p.id and pt.tag_id in (select tag_id from posts_tags where post_id = 1) #id текущего поста
    where p.id != 1 #id текущего поста
    group by p.id
    order by count(pt.id) desc

    1 - это id текущего поста в запросе
    similar_tags_qty - количество совпадающих тегов
    Ответ написан
    Комментировать