在SQLAlchemy的存在文档说,使用exists创建了一个SQL语句EXISTS (SELECT 1 ...)。我怎样才能EXISTS选择我选择的列?
我有两个模型喜欢这样:
class Query:
id = Column(UUID)
content = Column(String)
...
class Review:
id = Column(UUID)
query_id = Column(UUID, ForeignKey('query.id'))
...
我想进行这需要让所有的复杂查询id小号QueryS的没有Review。为此,我编写了以下 python:
reviewed_query_ids_sql_query = session.query(models.Review.query_id)
filtered_queries_sql_query = session.query(models.Query.id).where(~reviewed_query_ids_sql_query.exists())
但这会为以下生成以下 SQL filtered_queries_sql_query:
SELECT queries.id
FROM queries
WHERE (EXISTS (SELECT 1
FROM reviews))
但是,原始查询reviewed_query_ids_sql_query是
SELECT reviews.query_id AS reviews_query_id
FROM reviews
SELECT 1当基础查询执行 a 时,为什么存在SELECT <column>?我希望查询做的是SELECT query_id FROM reviews在带有EXISTS子句的查询中。我怎样才能做到这一点?
慕的地8271018
相关分类