小编Mih*_*hin的帖子

我可以让SQLAlchemy做子查询急切加载而不重复完整的原始查询吗?

假设我们有原始生成的查询:

SELECT company.x AS company_x, ...
FROM company
LEFT OUTER JOIN acc ON acc.id = company.acc
LEFT OUTER JOIN usercomp_links ON company.id = usercomp_links.pid
LEFT OUTER JOIN usergro_links ON acc.id = usergro_links.pid
WHERE usergro_links.eid = %s OR usercomp_links.eid = %s
Run Code Online (Sandbox Code Playgroud)

如果我们加上.options(subqueryload(Company.childs))这个,我们将得到:

SELECT company.x AS company_x, ..., anon_1.company_id AS anon_1_company_id
FROM (
    SELECT company.id AS company_id
    FROM company
    LEFT OUTER JOIN acc ON acc.id = company.acc
    LEFT OUTER JOIN usercomp_links ON company.id = usercomp_links.pid
    LEFT OUTER JOIN usergro_links ON …
Run Code Online (Sandbox Code Playgroud)

python orm sqlalchemy eager-loading

9
推荐指数
2
解决办法
3104
查看次数

标签 统计

eager-loading ×1

orm ×1

python ×1

sqlalchemy ×1