Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python sqlalchemy从子查询添加实体_Python_Join_Sqlalchemy_Subquery - Fatal编程技术网

Python sqlalchemy从子查询添加实体

Python sqlalchemy从子查询添加实体,python,join,sqlalchemy,subquery,Python,Join,Sqlalchemy,Subquery,我想在子查询上使用outerjoin操作,还包括子查询中的值 我的代码 q_responses = session.query(Candidate, CandidateProfile) .join(CandidateProfile, CandidateProfile.candidate_id == Candidate.id) subq = (session.query(AppAction.candidate_id, Activity.archived)\

我想在子查询上使用
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)
但是我还想在结果中包含子查询中的存档的

通过阅读互联网上的许多相关帖子,我尝试了

  • 添加实体(子Q.c.存档)
  • 与_实体
  • 添加列
  • 但所有这些都导致了一些错误


    请帮助我。

    请在尝试添加列时分享您的错误。下面的代码应该可以正常工作(假设它在没有包含
    add\u列
    的like的情况下工作):

    此外,您还可以直接创建一个包含以下列的查询:

    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()
    

    请在尝试添加列时分享您的错误。下面的代码应该可以正常工作(假设它在没有包含
    add\u列
    的like的情况下工作):

    此外,您还可以直接创建一个包含以下列的查询:

    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()
    

    请在尝试添加列时分享您的错误。下面的代码应该可以正常工作(假设它在没有包含
    add\u列
    的like的情况下工作):

    此外,您还可以直接创建一个包含以下列的查询:

    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()
    

    请在尝试添加列时分享您的错误。下面的代码应该可以正常工作(假设它在没有包含
    add\u列
    的like的情况下工作):

    此外,您还可以直接创建一个包含以下列的查询:

    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()
    

    谢谢我现在可以从子查询到外部查询获取这些值。谢谢!我现在可以从子查询到外部查询获取这些值。谢谢!我现在可以从子查询到外部查询获取这些值。谢谢!我现在可以从子查询到外部查询获取这些值。