0
如果我有一个PK的典范,可以说device_id
(所以它不是id
),我涉及的另一个表:从数据库取回模式任意PK
x = db.Column(db.Integer, db.ForeignKey('device.device_id'))
我如何在SQLAlchemy中引用此列查询?
在Django我可以使用Device.pk
它会解决PK。在sqlalchemy的烧瓶中这可能吗?
如果我有一个PK的典范,可以说device_id
(所以它不是id
),我涉及的另一个表:从数据库取回模式任意PK
x = db.Column(db.Integer, db.ForeignKey('device.device_id'))
我如何在SQLAlchemy中引用此列查询?
在Django我可以使用Device.pk
它会解决PK。在sqlalchemy的烧瓶中这可能吗?
您可以加入它,也可以使用SQLAlchemy的关系自动运行它。
它看起来像你在谈论一个多对一的关系,所以,using the documentation example:
class Person(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
addresses = db.relationship('Address', backref='person',
lazy='dynamic')
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
person_id = db.Column(db.Integer, db.ForeignKey('person.id'))
如果是PK的人不同的名称,你只需调节ForeignKey
匹配:
class Person(db.Model):
toot = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(50))
addresses = db.relationship('Address', backref='person',
lazy='dynamic')
class Address(db.Model):
id = db.Column(db.Integer, primary_key=True)
email = db.Column(db.String(50))
person_id = db.Column(db.Integer, db.ForeignKey('person.toot'))
如果我当时就想找出所有Person
对象谁拥有[email protected]
的电子邮件地址,我可以只说:
Person.query.join(Address).filter(Address.email='[email protected]').all()
这里是[答案](http://stackoverflow.com/a/32200462/1377864)。 –
你是什么意思“你怎么能参考它?”在那里,它被称为'x'。请[编辑]添加一个[mcve],展示你正在努力完成的任务。 – davidism