如何使用 SQLAlchemy addcolumn 来包含一个 func.count 值

How to use SQLAlchemy addcolumn to include a func.count value

我有 2 张桌子,我们称它们为 A 和 B。 A有每个用户的一些信息,B有用户的一些服务。 这里我想使用SQLAlchemy来查询用户和他们的服务数量。

--------
A:
username(primary key),
age,
full_name,
password
B:
username,
service_name
--------

我可以用session.query(A).filter(A.username.like('foo%'))查询用户,但是我不能添加sum列。

我不确定是否有更永久的方法将计数附加到对象,但这可以让您同时获得计数和对象。

from sqlalchemy.sql import func
query = session.query(A, func.count(B.service_name))
query = query.outerjoin(B, A.username == B.username)
query = query.group_by(A.username).filter(A.username.like('foo%'))
for (user, user_service_count) in query.all():
    print(user, user_service)