0

我对 ORM SQLAlchemy 的查询有疑问。

我需要这样写子查询

SELECT DISTINCT ON (e.type) e.type AS e_type, e.num AS e_num 
FROM e ORDER BY e.type

通过 ORM SQLAlchemy,但是当我.subquery().alias("q")在查询中使用时,DISTINCT ON被编译为DISTINCT. 为什么以及如何解决它?


没有 .subquery()

db.session.query(E.type, E.num).distinct(E.type).order_by(E.type)

编译为

SELECT DISTINCT ON (e.type) e.type AS e_type, e.num AS e_num FROM e ORDER BY e.type

使用 .subquery()

db.session.query(E.type, E.num).distinct(E.type).order_by(E.type).subquery().alias("q")

编译为

SELECT DISTINCT e.type AS e_type, e.num AS e_num FROM e ORDER BY e.type
4

0 回答 0