SQLAlchemy:按照至少一个多对多关联表的成员身份进行过滤

8 浏览
0 Comments

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语句。

0