Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.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_Sql_Join_Sqlalchemy - Fatal编程技术网

Python SQLalchemy:在两列上连接一个表

Python SQLalchemy:在两列上连接一个表,python,sql,join,sqlalchemy,Python,Sql,Join,Sqlalchemy,我必须连接两个表,其中第一个表包含两个对第二个表的尊敬。例如,第一个表拥有START_ID和END_ID列。第二个表包含位置。我如何以一种能够访问起始值和结束值的方式加入它们。 以下是我尝试过的: endp = aliased(POSITIONS) startp = aliased(POSITIONS) trans_data = self.atomic_db.session.query(ONE, endp, startp

我必须连接两个表,其中第一个表包含两个对第二个表的尊敬。例如,第一个表拥有START_ID和END_ID列。第二个表包含位置。我如何以一种能够访问起始值和结束值的方式加入它们。 以下是我尝试过的:

    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)

T

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

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

问题是什么?它是怎么失败的?发生了什么?你期望发生什么?