Python 当SQLAlchemy决定将子查询与.limit()方法一起使用时?

Python 当SQLAlchemy决定将子查询与.limit()方法一起使用时?,python,sql,postgresql,sqlalchemy,Python,Sql,Postgresql,Sqlalchemy,我有一个错误,当SQLAlchemy生成错误的SQL查询时,但我无法确定条件 我使用Flask SQLAlchemy,最初它只是一个MyModel.query,由简单的SELECT和JOIN表示。但当应用.limit()方法时,它会转换并使用子查询获取主对象,然后才应用连接。问题在于ORDERBY语句,该语句保持不变并忽略子查询定义 以下是示例,我简化了选择字段: -- Initially SELECT * FROM customer_rates LEFT OUTER JOIN seasons

我有一个错误,当SQLAlchemy生成错误的SQL查询时,但我无法确定条件

我使用Flask SQLAlchemy,最初它只是一个MyModel.query,由简单的SELECT和JOIN表示。但当应用.limit()方法时,它会转换并使用子查询获取主对象,然后才应用连接。问题在于ORDERBY语句,该语句保持不变并忽略子查询定义

以下是示例,我简化了选择字段:

-- Initially
SELECT *
FROM customer_rates
LEFT OUTER JOIN seasons AS seasons_1 ON seasons_1.id = customer_rates.season_id
LEFT OUTER JOIN users AS users_1 ON users_1.id = customer_rates.customer_id
-- other joins ...
ORDER BY customer_rates.id, customer_rates.id

-- Then .limit()
SELECT anon_1.*, *
FROM (
    SELECT customer_rates.*
    FROM customer_rates
    LIMIT :param_1) AS anon_1
LEFT OUTER JOIN seasons AS seasons_1 ON seasons_1.id = anon_1.customer_rates_season_id
LEFT OUTER JOIN users AS users_1 ON users_1.id = anon_1.customer_rates_customer_id
-- other joins
ORDER BY customer_rates.id, customer_rates.id
此查询将给出以下错误:

ProgrammingError: (psycopg2.ProgrammingError) missing FROM-clause entry for table "customer_rates"
查询中的最后一行应为:

ORDER BY anon_1.customer_rates_id
生成此查询的代码是大型应用程序的一部分。我已经尝试在一个小烧瓶应用程序中从头开始实现它,但我无法复制它。在小型应用程序中,它总是使用连接。 所以我需要知道,当SQLAlchemy决定使用子查询时


我使用python 2.7和PostgreSQL 9,答案非常简单。当联接表与查询模型有多对一关系时,它使用子查询。因此,为了生成正确数量的结果,它限制了子查询中的查询行,答案非常简单。当联接表与查询模型有多对一关系时,它使用子查询。因此,为了生成正确数量的结果,它限制了子查询中的查询行