【问题标题】:How to query a parent based on a childs length in sqlalchemy如何在 sqlalchemy 中根据孩子的长度查询父母
【发布时间】:2017-12-28 14:52:32
【问题描述】:

我有以下型号:

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。有没有办法在一行中写这个?谢谢。

【问题讨论】:

    标签: python sql sqlalchemy flask-sqlalchemy


    【解决方案1】:

    试试这个:

    from sqlalchemy import not_
    
    tables = Tables.query.filter_by(store_id=1)\
               .filter(not_(Tables.orders.any())).all()  
    

    【讨论】:

      猜你喜欢
      • 2016-05-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-17
      • 2011-10-20
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多