如何使用SQLAlchemy向所有用户(包括我的朋友)显示

时间:2019-07-13 17:38:27

标签: python flask-sqlalchemy

我正在尝试显示所有用户的列表,包括我的朋友。

数据库:

关系表:

relationships table

用户表:

enter image description here

服务器端:

    q1 = db.session.query(User).add_columns(User.id,User.name,Relationship.status).join(
        Relationship, User.id == Relationship.user1_Id).filter(Relationship.user2_Id == id)

    q2 = db.session.query(User).add_columns(User.id,User.name,Relationship.status).join(
        Relationship, User.id == Relationship.user2_Id).filter(Relationship.user1_Id == id)

    q3 = db.session.query(User).add_columns(User.id,User.name,'null').filter(User.id != id)
    result = q1.union(q2).union(q3)

如果仅合并q1和q2,那么我会正确地认识我的朋友。但是,当添加第三个联合时,我的朋友列表将被复制。我知道联合并不是做到这一点的最佳方法,但是我是SQLAlchemy的新手,我想知道如何在此处使用“ join”。

0 个答案:

没有答案