【问题标题】:Convert SQL to SQLAlchemy one将 SQL 转换为 SQLAlchemy 一
【发布时间】:2021-11-21 09:39:57
【问题描述】:

我有这个 SQL 代码,我想用 SQLAlchemy 执行它。 但我无法使用 SQLAlchemy 编写正确的查询。

SELECT anon_1.applications_versions_id             AS versions_id,
       anon_1.applications_versions_application_id AS versions_application_id,
       anon_1.applications_versions_version        AS version,
       anon_1.applications_versions_status         AS status,
       anon_1.applications_id                      AS applications_id,
       anon_1.applications_developer_id            AS developer_id,
       anon_1.applications_name                    AS name,
       anon_1.applications_description             AS description
FROM (
         SELECT DISTINCT ON
             (applications_versions.application_id) applications_versions.id             AS applications_versions_id,
                                                    applications_versions.application_id AS applications_versions_application_id,
                                                    applications_versions.version        AS applications_versions_version,
                                                    applications_versions.path           AS applications_versions_path,
                                                    applications_versions.status         AS applications_versions_status,
                                                    applications_versions.release_notes  AS applications_versions_release_notes,
                                                    applications_versions.created        AS applications_versions_created,
                                                    applications_versions.updated        AS applications_versions_updated,
                                                    applications.id                      AS applications_id,
                                                    applications.developer_id            AS applications_developer_id,
                                                    applications.name                    AS applications_name,
                                                    applications.description             AS applications_description,
                                                    applications.created                 AS applications_created,
                                                    applications.updated                 AS applications_updated
         FROM applications
                  JOIN applications_versions ON applications.id = applications_versions.application_id
         ORDER BY applications_versions.application_id, applications_versions.created DESC) AS anon_1
WHERE anon_1.applications_versions_status = 'DECLINED'
ORDER BY anon_1.applications_versions_application_id, anon_1.applications_versions_created DESC;

有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: sql sqlalchemy


    【解决方案1】:

    这里有两种解决方案。

    1. 简单

    您将查询包装在 from_statement 中并进一步使用它。

    例子:

    from sqlalchemy import text
    apps = session.query(Application).from_statement(text(
    """
    SELECT ...
    FROM ...
    ORDER BY ...
    """)).all()
    
    1. 很难

    您学习 SQLAlchemy 并自己重写。

    这些链接将对您有所帮助:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-27
      • 2019-03-20
      • 2015-01-31
      • 2013-07-09
      • 2017-04-25
      • 2017-02-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多