[英]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.