我正在尝试显示所有用户的列表,包括我的朋友。
数据库:
关系表:
用户表:
服务器端:
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”。