我有以下模型和关联。 AA 可以有多个 BB,即 AA.bbs 是 BB 的列表。我只想从 AA 和 BB 中选择几列,即 AA 的名称和 BB 的名称、用户名。
aa2cc_association = Table(
'aa2bbassociation',
Base.metadata,
Column('aa_id', Integer, ForeignKey(get_full_table_name(TABLE_FOLDER_NAME) + '.id'), primary_key=True),
Column('username', Unicode(512), ForeignKey(get_full_table_name(TABLE_FOLDER_TEST_NAME) + '.username'), primary_key=True),
**_tablekwargs)
class BB(Base):
id = Column("id")
name = Column("name")
username = Column("username")
class AA(Base):
id = Column("id")
name = Column("name")
bbs = relationship(BB, secondary=aa2cc_association, backref='folders', lazy="joined")
表AA
id name
1 aa1
2 aa2
表BB
id name username
1 bb1 u1
2 bb2 u2
表aa2bb关联
aa_id username
1 u1
1 u2
我执行此查询
results = session.query(AA.id, AA.name, BB.name, BB.username).group_by(AA.name)
但它只返回一行。
返回结果表
AA.name BB.name BB.username
aa1 bb1 u1
我期待这样的事情。我怎样才能得到这个?
AA.id AA.name BB.name BB.username
1 aa1 bb1 u1
1 aa1 bb2 u2