sqlalchemy过滤重复吗?

时间:2018-01-19 16:32:16

标签: python sql sqlalchemy

我有一个sqlalchamy查询和SQL查询,我认为这些查询相同但会返回不同的结果。关于sqlalchemy,我有什么遗漏?

sqlalchemy代码:

session.query(Table1)\
       .join(Table2)\
       .join(Table3)\
       .filter(Table3.data == X)\
       .filter(Table1.other_data == Y)\
       .all()

SQL查询:

select Table1.*
from Table1
join Table2 on Table2.table1_id = Table1.id
join Table3 on Table2.id = Table3.table2_id
where Table3.data = X
      and Table1.other_data = Y;

Table2Table1中有外键,而Table3在表Table2中有外语,因此sqlalchemy应该可以很好地加入它们。 Table3没有来自Table1的外键。

sqlalchemy代码返回1个结果,而SQL返回3个重复项,所以我的问题是:sqlalchemy做了一些我不知道的事情吗?

0 个答案:

没有答案