【问题标题】:SQL or SQLAlchemy expression to get nearest upcoming TV episodesSQL 或 SQLAlchemy 表达式以获取最近的即将播出的电视剧集
【发布时间】:2013-10-30 08:48:03
【问题描述】:

我有以下 Flask-SQLAlchemy 模型,但是那些不了解 SQLAlchemy 的人应该很容易理解这些 SQL 表:

from myapp.api import db

class Show(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    title = db.Column(db.String(128))

class Episode(db.Model):
    title = db.Column(db.String(256))
    airtime = db.Column(db.DateTime)
    show_id = db.Column(db.Integer, db.ForeignKey('show.id'), primary_key=True)

    show = db.relationship('Show', backref=db.backref('episodes'), lazy='joined')

我正在尝试为每个节目获取最近的即将播出的剧集(及其节目),但我无法弄清楚执行此操作的 SQL。

我尝试了min()GROUP BY 等的一系列不同组合,但我感觉我需要使用子查询来执行此操作。

我使用 SQLite 是为了它的价值。

有什么想法吗?

【问题讨论】:

  • 您想要sqlsqlalchemy 的答案吗?
  • 我最终将使用 SQLAlchemy,但我可能必须先弄清楚如何在 SQL 中使用它。

标签: python sql sqlite sqlalchemy


【解决方案1】:

这应该返回每个节目的最后一集:

SELECT * FROM Show JOIN Episode ON Show.id=Episode.show_id
WHERE airtime=(SELECT MAX(airtime) FROM Episode WHERE show_id=Show.id)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-24
    • 1970-01-01
    • 2020-10-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-19
    • 2019-04-23
    • 1970-01-01
    相关资源
    最近更新 更多