【发布时间】:2011-09-22 10:20:52
【问题描述】:
使用 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 语句。
【问题讨论】:
标签: python mysql many-to-many sqlalchemy