元のデータソースから6つのテーブルを順番に結合するクエリがあります。ネストされた、それは混乱です:
SELECT
FROM
(
SELECT
FROM
(
SELECT
FROM
(. . .)
INNER JOIN
)
INNER JOIN
)
CTE定義に切り替えました。各定義は、前の定義の1つの結合であり、最後の最後のクエリで結果が得られます。
WITH
Table1 (field1, field2) AS
(
SELECT
FROM
INNER JOIN
),
Table2 (field2, field3) AS
(
SELECT
FROM Table1
INNER JOIN
), . . .
SELECT
FROM Table 6
これははるかに読みやすく、依存関係は論理的な順序で下向きに流れます。ただし、各定義は実際には順番に1回しか参照されないため、これはCTEの使用目的(およびビューを使用しない理由)とは思えません。
読み取り可能で論理的な構造のこのような順次ネストされた結合を構築する方法についてのガイダンスはありますか?