Получить из бд записи с такими же или похожими тегами?
Есть две таблицы с постами и тэгами к ним, и вспомогательная таблица для mtm отношения.
class Post(db.Model):
id = db.Column(db.Integer, primary_key=True)
title = db.Column(db.String(140))
tags = db.relationship('Tag', secondary=posts_tags, backref=db.backref('posts'), lazy='dynamic')
class Tag(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(64), unique=True)
posts_tags = db.Table('posts_tags',
db.Column('post_id', db.Integer, db.ForeignKey('post.id')),
db.Column('tag_id', db.Integer, db.ForeignKey('tag.id')),
)
подскажите, как реализовать запрос sqlalchemy для получения, постов с такими же или максимально похожими тегами.
нашел одну реализацию, но она на sql языке, которым не владею и пока не могу перевести на язык orm алхимии.
select pt1.post_id, count(*) qty from post_tags pt1
where tag_id in (select tag_id from post_tags pt2 where pt2.post_id=< заданный > and
pt1.post_id<>pt2.post_id)
group by pt1.post_id
order by qty desc
Спасибо!)