2

I'm using Flask-sqlalchemy.
Here is the mysql:

select u.id, count(i.id) as count from rss_urls as u left join rss_items as i on u.id = i.rss_urls_id group by u.id;

How should I translate that into sqlalchemy?

Thanks a lot.

class RSS_urls(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    link = db.Column(db.String(200), unique=True)
    add_time = db.Column(db.DateTime)
    rss_items = db.relationship("RSS_items", backref="base_url", lazy="dynamic")


class RSS_items(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    rss_urls_id = db.Column(db.Integer, db.ForeignKey("RSS_urls.id"))
    link = db.Column(db.String(200))
    title = db.Column(db.String(200))

Here is the model.

0

1 Answer 1

6

Assuming you have a model RssUrl and RssItem, with a relationship RssUrl.rss_items.

db.session.query(RssUrl.id, db.func.count(RssUrl.id).label("count")
    ).join(RssUrl.rss_items).group_by(RssUrl.id)
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.