SQLAlchemy:按照至少一个多对多关联表的成员身份进行过滤
SQLAlchemy:按照至少一个多对多关联表的成员身份进行过滤
在使用SQLAlchemy 0.7.1和MySQL 5.1数据库时,我设置了一个多对多的关系,如下所示:
user_groups = Table('user_groups', Base.metadata,
Column('user_id', String(128), ForeignKey('users.username')),
Column('group_id', Integer, ForeignKey('groups.id'))
)
class ZKUser(Base, ZKTableAudit):
__tablename__ = 'users'
username = Column(String(128), primary_key=True)
first_name = Column(String(512))
last_name = Column(String(512))
groups = relationship(ZKGroup, secondary=user_groups, backref='users')
class ZKGroup(Base, ZKTableAudit):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True)
name = Column(String(512))
用户可以属于多个组,而组可以包含多个用户。
我想做的是构建一个SQLAlchemy查询,仅返回属于一组或多组的用户的列表。
我尝试使用in_函数进行尝试,但它似乎仅适用于在列表中测试标量值的成员资格。我不是一个很擅长写SQL的人,所以我甚至不知道需要什么样的SELECT语句。