如何根据sqlalchemy中的子项长度查询父项

时间:2017-07-22 16:02:28

标签: python sql sqlalchemy flask-sqlalchemy

我有以下型号:

class Tables(db.Model):  # fixme: rename the table name to table.
    __tablename__ = "tables"
    id = db.Column(db.Integer, primary_key=True)
    store_id = db.Column(db.Integer)
    name = db.Column(db.String(64))
    active = db.Column(db.Integer, default=0)
    orders = db.relationship("Order", backref='table', lazy='dynamic')

到目前为止,我有这个。

tables = Tables.query.filter_by(store_id=1).all()  

free_tables = []
for table in tables:
    if len(table.orders.all()) == 0:
        free_tables.append(table.id)

我想要的是没有订单绑定到它们的表的ID。有没有办法在一行中写这个?谢谢。

1 个答案:

答案 0 :(得分:2)

试试这个:

from sqlalchemy import not_

tables = Tables.query.filter_by(store_id=1)\
           .filter(not_(Tables.orders.any())).all()  
相关问题