0
我有這些疑問:我如何結合sqlalchemy中的兩個查詢 - 原始和orm?
funds_subq = text('''select distinct on (user_id) user_id,
last_value(amount) over(PARTITION BY user_id order BY id asc RANGE BETWEEN UNBOUNDED PRECEDING AND UNBOUNDED FOLLOWING)
from transactions order by user_id, ts_spawn desc''')
g1 = aliased(Group)
u1 = aliased(User)
users = Session.query(User.id.label('user_id'),
User.name.label('user_name'),
User.funds.label('user_funds'),
Group.id.label('group_id'),
Group.parent_id.label('parent_id'),
u1.id.label('owner_id'),
u1.name.label('owner_name')). \
select_from(User). \
join(Group, Group.id == User.group_id). \
outerjoin(g1, g1.id == Group.parent_id). \
outerjoin(u1, u1.id == g1.owner_id)
所以,我怎麼能參加第一到第二? 我想是這樣的:
users = users.outerjoin(funds_subq, funds_subq.c.user_ud == User.id)
當然,它並沒有工作,因爲funds_subq沒有c
屬性,它不具有subquery()
屬性了。 和that問題表明,沒有辦法使用我的版本的窗口查詢。
如何實現我的查詢?