Итак, есть таблицы posts и tags. Их связывает таблица posts_tags.

Запрос на выборку похожих тегов может выглядеть следующим образом.

SELECT
    Tag.name, COUNT(*) as postcount
FROM
    tags AS t
    INNER JOIN posts_tags AS pt ON (t.id = pt.tag_id)
    INNER JOIN posts AS p ON (pt.post_id = p.id)
    INNER JOIN posts_tags AS pota ON (p.id = pota.post_id)
    INNER JOIN tags AS Tag ON (pota.tag_id = Tag.id)
WHERE
    t.name = "frisbee"
    AND t.id <> Tag.id
GROUP BY
    Tag.name;

Я проверил – все работает :)

Спасибо 2 daniel hofstetter

Tags:



Leave a Comment