我在sqlalchemy中有以下模型:
class Magazine(db.Model):
id= db.Column(db.Integer, primary_key=True)
name= db.Column(db.String(50))
issues= db.relationship('Issue', backref='magazine', lazy='dynamic')
class Issue(db.Model):
id= db.Column(db.Integer, primary_key=True)
magazine_id= db.Column(db.Integer, db.ForeignKey('magazine.id'))
date= db.Column(db.Date)
杂志上有杂志的名称,问题涉及每本杂志的问题。这些是每周杂志,因此date
中的Issue
字段是问题的发生日。
我尝试构建一个查询,以选择所有在特定日期没有问题的杂志。这是最简单的方法吗?
答案 0 :(得分:1)
由于这是标记sql
,我认为你可以使用正确的SQL,而不是SQLAlchemy使用的。这应该是关于如何在SQLAlchemy中表达相同内容的提示。
SELECT *
FROM magazine m
WHERE NOT EXISTS (
SELECT 1 FROM issue i WHERE i.magazine_id = m.id AND i."date" = $1
);
$1
是日期参数;在Python中它可能是%s
或?
...无论你的语言参数占位符是什么。
BTW,"date"
是列的可怕名称。它必须是双引号,因为它是一个typename和一个SQL保留字。