2015-04-29 18 views
1

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

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) 

牛逼

+0

这是什么问题?它是如何失败的?发生了什么,你期望会发生什么? – knitti

回答

0

您的联接是没有顺序的权利,你应该写:

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) 

另外,你要更新或只得到查询结果?如果后者 - 你不需要“价值”

相关问题