flask-sqlalchemy使用单个表过滤多列

时间:2018-06-18 09:01:35

标签: python sqlalchemy flask-sqlalchemy

我有一个表Attendee_Handshake,其中包含2列from_idto_id,我想查询from_idto_id所拥有的所有行{ {1}}列等于0,这是另一个表status上的引用,其中Attendee_Loginfrom_id是主键。

Attendee_Handshake

  • to_id
  • from_id(foreign key)

Attendee_Login

  • to_id(foreign key)
  • login_id(primary key)

1 个答案:

答案 0 :(得分:0)

由于您需要2个单独的Attendee_Login引用,因此您需要一个别名:

attendee_alias = db.aliased(Attendee_Login)

然后,这是一个简单的加入和过滤问题:

Attendee_Handshake.query.\
    join(Attendee_Login, Attendee_Login.login_id == Attendee_Handshake.from_id).\
    join(attendee_alias, attendee_alias.login_id == Attendee_Handshake.to_id).\
    filter(Attendee_Login.status == 0,
           attendee_alias.status == 0)