[英]sqlalchemy add entity from a subquery
我想在subquery
上使用outerjoin
操作,并且还包括子查询中的值。
我的密码
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()
所以我得到这种格式的结果
(Candidate, CandidateProfile)
但是我也想在结果中包括子查询的存档值。
通过阅读互联网上的许多相关帖子,我尝试了
add_entity(subq.c.archived)
with_entities
add_column
select_from
但是所有这些都导致了一些错误。
请帮帮我。
当您尝试使用add_column
时,请分享您的错误。 下面的代码应该可以正常工作(假设它可以正常工作,而无需包含add_column
):
responses = (
q_responses
.add_column(subq.c.archived) # @new
.outerjoin(subq, Candidate.id == subq.c.candidate_id)
).all()
您也可以立即创建一个查询,其中包含以下列:
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.