[英]SQLAlchemy Nested CTE Query
sqlalchemy 核心查詢生成器似乎取消嵌套 CTE 查詢並將其重新定位到已編譯 sql 的“頂部”。
我正在轉換一個現有的 Postgres 查詢,該查詢選擇深度連接的數據作為單個 JSON object。 語法相當做作,但它顯着減少了大型查詢的網絡開銷。 目標是使用 sqlalchemy 核心查詢構建器動態構建查詢。
這是嵌套 CTE 的最小工作示例
with res_cte as (
select
account_0.name acct_name,
(
with offer_cte as (
select
offer_0.id
from
offer offer_0
where
offer_0.account_id = account_0.id
)
select
array_agg(offer_cte.id)
from
offer_cte
) as offer_arr
from
account account_0
)
select
acct_name::text, offer_arr::text
from res_cte
結果
acct_name, offer_arr
---------------------
oliver, null
rachel, {3}
buddy, {4,5}
(我的錯誤使用)核心查詢構建器嘗試offer_cte
並導致每個offer.id
與結果中的每個account_name
相關聯。
無需在答案中重新實現這個確切的查詢,任何導致類似嵌套 CTE 的示例都是完美的。
收到 sqla 團隊的確認,即目前不可能或在任何路線圖https://github.com/sqlalchemy/sqlalchemy/issues/5335#issuecomment-630838687
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.