我已经得到了一个很大的疑问。但是有太多的子查询几乎是不可能的。子查询的数量大约是15-20。你建议我做什么?
答案 0 :(得分:4)
面对这样的怪物时我通常会做的是:
with subquery1 as (select /*big query*/ ), subquery2 as (select /*big query*/ ) select * from ... join subquery1 where foo in (select foo from subquery2)
此时会出现一些模式,并且通常可以以合理的方式重写查询。
答案 1 :(得分:1)
我要做的第一件事是发出explain plan来查看DBMS如何执行查询并从那里开始。