[英]sqlalchemy add entity from a subquery
I want to use outerjoin
operation on a subquery
and also include values from the subquery also. 我想在subquery
上使用outerjoin
操作,并且还包括子查询中的值。
My code 我的密码
q_responses = session.query(Candidate, CandidateProfile)
.join(CandidateProfile, CandidateProfile.candidate_id == Candidate.id)
subq = (session.query(AppAction.candidate_id, Activity.archived)\
.join(Activity, and_(AppAction.candidate_id == Activity.candidate_id,
Activity.archived == 1)))\
.subquery("subq")
responses = q_responses.outerjoin(subq, Candidate.id == subq.c.candidate_id).all()
So I get the result in this format 所以我得到这种格式的结果
(Candidate, CandidateProfile)
But I also want to include the archived value from subquery in the result. 但是我也想在结果中包括子查询的存档值。
By reading many relevant posts from the internet, I have tried 通过阅读互联网上的许多相关帖子,我尝试了
add_entity(subq.c.archived)
with_entities
add_column
select_from
But all those have resulted in some error. 但是所有这些都导致了一些错误。
Please help me out. 请帮帮我。
Please share your error for when you try add_column
. 当您尝试使用add_column
时,请分享您的错误。 The code below should work just fine (assuming that it does work without like which contains add_column
): 下面的代码应该可以正常工作(假设它可以正常工作,而无需包含add_column
):
responses = (
q_responses
.add_column(subq.c.archived) # @new
.outerjoin(subq, Candidate.id == subq.c.candidate_id)
).all()
Also you could have created a query straight away with this column included: 您也可以立即创建一个查询,其中包含以下列:
subq = (
session.query(AppAction.candidate_id, Activity.archived)
.join(Activity, and_(AppAction.candidate_id == Activity.candidate_id,
Activity.archived == 1))
).subquery("subq")
q_responses = (
session.query(Candidate, CandidateProfile, subq.c.archived)
.join(CandidateProfile, CandidateProfile.candidate_id == Candidate.id)
.outerjoin(subq, Candidate.id == subq.c.candidate_id)
).all()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.