繁体   English   中英

SQLalchemy:在两列上联接一个表

[英]SQLalchemy: joining one table on two columns

我必须加入两个表,其中第一个表包含对第二个表的两个崇敬。 例如,第一个表拥有START_ID和END_ID列。 第二个表包含位置。 如何以可以访问START和END值的方式加入他们。 这是我尝试过的:

    endp = aliased(POSITIONS)
    startp = aliased(POSITIONS)
    trans_data = self.atomic_db.session.query(ONE, endp, startp
                                              ).join(
        endp,
        ONE.start_id == startp.id).join(source_level,
        ONE.end_id == endp.id).values(
        ONE.id, endp.value ,
        startp.value)

Ť

您的连接顺序不正确,您应该写:

endp = aliased(POSITIONS)
startp = aliased(POSITIONS)
trans_data = self.atomic_db.session.query(ONE, endp, startp)\
    .join(endp, ONE.end_id == endp.id)\
    .join(startp, ONE.start_id == startp.id)\
    .values(ONE.id, endp.value ,startp.value)

另外,您要更新还是仅获取查询结果? 如果是后者-您不需要“ .values”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM