我有一个查询,它从原始数据源顺序连接 6 个表。嵌套,这是一团糟:
SELECT
FROM
(
SELECT
FROM
(
SELECT
FROM
(. . .)
INNER JOIN
)
INNER JOIN
)
我切换到 CTE 定义,每个定义都是前一个定义的一个连接,最后的最终查询提供结果:
WITH
Table1 (field1, field2) AS
(
SELECT
FROM
INNER JOIN
),
Table2 (field2, field3) AS
(
SELECT
FROM Table1
INNER JOIN
), . . .
SELECT
FROM Table 6
这更具可读性,并且依赖关系按逻辑顺序向下流动。然而,这似乎不是 CTE 的预期用途(也是我不使用视图的原因),因为每个定义实际上只按顺序引用一次。
有没有关于如何构建这样的顺序嵌套连接的指导,这种连接在结构上既可读又合乎逻辑?