2017-03-15 54 views
0

所有行我已经数据库设置SQLAlchemy的:选择有很多一对多关系到另一个表

descriptors = db.Table('descriptors', 
    db.Column('object_id', db.Integer, db.ForeignKey('object.id')), 
    db.Column('descriptor_id', db.Integer, db.ForeignKey('descriptor.id')) 
) 

class Descriptor(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    name = db.Column(db.String(2000)) 
    ... 
    objects = db.relationship('Object', secondary=descriptors, backref=db.backref('descriptors')) 
def __repr__(self): 
    return '<Descriptor %r>' % (self.id) 

class Object(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    ... 
def __repr__(self): 
    return '<Object %r>' % (self.id) 

我想选择其中有一个描述符的所有对象以下。含义我想选择描述符表中具有object_id的所有对象。但是因为我无法直接查询描述符表,所以我不太清楚如何得到它?

回答

1

可以使用任何运营商在你过滤,例如:

session.query(Object).filter(Object.descriptors.any()) 
+0

啊那么容易......非常感谢! – carl

+0

如果有效,请接受它作为答案。谢谢! –

+0

是否有任何()函数的参考...我想知道是否有一个函数来实际计算行数? – carl

相关问题