Есть таблица Post. Еще есть таблица Post_Tags и Tags:
Post_Tags: Post_id, Tag_id
Tags: Tag_id, Name
К примеру, есть запись, у которой 5 тегов: Тег1, Тег2, Тег3, Тег4, Тег5.
Следовательно, в таблице Post_Tags 5 записей (ID поста, ID тега).
Задача: получить все посты, которые совпадают по тегам с сортировкой по количеству.
То есть все посты, у которых есть какие-либо из Тег1, Тег2, Тег3, Тег4, Тег5 теги.
Подскажите, как это можно сделать?
Обновление
Я оформил запрос, он работает, но еще не понял, как =). Большое спасибо. А можно, я налеплю еще сюда джоин?
SELECT Post.title, Post_Tags.article_id, count(*) count_alike_tags
FROM `article_tags` Post_Tags
LEFT JOIN `Article` Post
ON Post_Tags.article_id = Post.id
WHERE tag_id IN (SELECT tag_id FROM article_tags Post_Tags_Alias
WHERE Post_Tags_Alias.article_id=1 AND Post_Tags.article_id <>
Post_Tags_Alias.article_id)
GROUP BY Post_Tags.article_id
ORDER BY count_alike_tags DESC;