gpt4 book ai didi

python - 如何使用 SQLAlchemy 执行嵌套查询中存在的位置?

转载 作者:行者123 更新时间:2023-12-01 00:46:25 25 4
gpt4 key购买 nike

我正在尝试做一个 WHERE EXISTS SQLAlchemy 中的子句。 SQL 看起来像这样:

SELECT
id, title
FROM
package AS package1
WHERE
EXISTS (
SELECT
title
FROM
package as package2
WHERE
package1.id <> package2.id AND
package1.title = package2.title
)
ORDER BY
title DESC;

是否可以在不使用原始 SQL 的情况下在 SQLAlchemy 中执行此操作?我试过这个,但它似乎没有返回正确的结果:
    t = model.Session.query(
model.Package.id,
model.Package.title
).subquery('t')

package = model.Session.query(
model.Package.title
).filter(
model.Package.id != t.c.id,
model.Package.title == t.c.title
)

最佳答案

使用 sqlalchemy.orm.aliased()exists() :

from sqlalchemy.orm import aliased

package_alias = aliased(Package)

session.query(Package.id, Package.title) \
.filter(session.query(package_alias.title) \
.filter(Package.id != package_alias.id) \
.filter(Package.title == package_alias.title) \
.exists()) \
.order_by(Package.title.desc())

关于python - 如何使用 SQLAlchemy 执行嵌套查询中存在的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34139270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com