เชเชฃเชพ เชเซเช เชชเชนเซเชฒเซเชฅเซ เชเชชเชฏเซเช เชเชฐเซ เชฐเชนเซเชฏเชพ เชเซ
... เช
เชจเซเชฐเซเชช เชชเซเชฒเชพเชจ เชจเซเชกเซเชธ เชฎเชพเชเซ เชธเชเชฆเชฐเซเชญเชฟเชค เชธเชเชเซเชคเซ เชธเชพเชฅเซ เชธเซเชเชฆเชฐ เชฐเซเชคเซ เชกเชฟเชเชพเชเชจ เชเชฐเซเชฒเซ เชเซเชตเซเชฐเซ:
เชคเซเชฎเชจเชพ เชฌเซเชเชพ เชญเชพเชเชจเซ เช เชชเซเชฐเชคเชฟเชฒเชฟเชชเชฟเชฎเชพเช
เชธเชพเชฎเชพเชจเซเชฏ เชเซเชตเซเชฐเซ เชเชพเชฎเชเซเชฐเซ เชธเชฎเชธเซเชฏเชพเช เช เชจเซ เชคเซเชฎเชจเชพ เชเชเซเชฒเซเชจเซ เชธเชฎเชฐเซเชชเชฟเชค เชชเซเชฐเชฅเชฎ เชญเชพเชเชจเซ เชเซเชฐเชพเชจเซเชธเชเซเชฐเชฟเชชเซเช, เชฒเซเชเชฎเชพเช เชฎเชณเซ เชถเชเซ เชเซ.
"เชฌเซเชฎเชพเชฐ SQL เชชเซเชฐเชถเซเชจเซ เชฎเชพเชเซเชจเซ เชตเชพเชจเชเซเช" .
เชชเซเชฐเชฅเชฎ, เชเชพเชฒเซ เชฐเชเช เชเชฐเชตเชพเชจเซเช เชถเชฐเซ เชเชฐเซเช - เช เชจเซ เช เชฎเซ เชนเชตเซ เชฏเซเชเชจเชพเชจเซ เชฐเชเช เชเชชเซเชถเซเช เชจเชนเซเช, เช เชฎเซ เชคเซเชจเซ เชชเชนเซเชฒเซเชฅเซ เช เชฐเชเชเซเชจ เชเชฐเซ เชฆเซเชงเซเช เชเซ, เช เชฎเชพเชฐเซ เชชเชพเชธเซ เชชเชนเซเชฒเซเชฅเซ เช เชธเซเชเชฆเชฐ เช เชจเซ เชธเชฎเชเซ เชถเชเชพเชฏ เชคเซเชตเซเช เชเซ, เชชเชฐเชเชคเซ เชเช เชตเชฟเชจเชเชคเซ.
เช
เชฎเชจเซ เชเชตเซเช เชฒเชพเชเชคเซเช เชนเชคเซเช เชเซ เชเชตเซ เช
เชจเชซเซเชฐเซเชฎเซเชเซเชก โเชถเซเชโ เชธเชพเชฅเซ เชฒเซเชเชฎเชพเชเชฅเซ เชเซเชเชเชพเชฏเซเชฒเซ เชตเชฟเชจเชเชคเซ เชเซเชฌ เช เชจเซเช เช
เชจเซ เชคเซเชฅเซ เช
เชธเซเชตเชฟเชงเชพเชเชจเช เชฒเชพเชเซ เชเซ.
เชเชพเชธ เชเชฐเซเชจเซ เชเซเชฏเชพเชฐเซ เชตเชฟเชเชพเชธเชเชฐเซเชคเชพเช เชเซเชกเชฎเชพเช เชตเชฟเชจเชเชคเซเชจเชพ เชฎเซเชเซเชฏ เชญเชพเชเชจเซ "เชเซเชเชฆเชฐ" เชเชฐเซ เชเซ (เช, เช
เชฒเชฌเชคเซเชค, เชเชจเซเชเชฟเชชเซเชเชฐเซเชจ เชเซ, เชชเชฐเชเชคเซ เชคเซ เชฅเชพเชฏ เชเซ). เชญเชฏเชพเชจเช!
เชเชพเชฒเซ เชเชจเซ เชตเชงเซ เชธเซเชเชฆเชฐ เชฐเซเชคเซ เชฆเซเชฐเซเช.
เช
เชจเซ เชเซ เชเชชเชฃเซ เชเชจเซ เชธเซเชเชฆเชฐ เชฐเซเชคเซ เชฆเซเชฐเซ เชถเชเซเช, เชเชเชฒเซ เชเซ, เชตเชฟเชจเชเชคเชฟเชจเชพ เชฎเซเชเซเชฏ เชญเชพเชเชจเซ เชกเชฟเชธเชเชธเซเชฎเซเชฌเชฒ เช
เชจเซ เชชเชพเชเซเช เชเชเชธเชพเชฅเซ เชฎเซเชเซ เชถเชเซเช, เชคเซ เชชเชเซ เช
เชฎเซ เช เชตเชฟเชจเชเชคเซเชจเชพ เชฆเชฐเซเช เชเชฌเซเชเซเชเซเช เชฎเชพเชเซ เชธเชเชเซเชค "เชเซเชกเซ" เชถเชเซเช เชเซเช - เชฏเซเชเชจเชพเชจเชพ เช
เชจเซเชฐเซเชช เชฌเชฟเชเชฆเซ เชชเชฐ เชถเซเช เชฅเชฏเซเช.
เชเซเชตเซเชฐเซ เชธเชฟเชจเซเชเซเชเซเชธ เชเซเชฐเซ
เช เชเชฐเชตเชพ เชฎเชพเชเซ, เชตเชฟเชจเชเชคเซเชจเซ เชชเชนเซเชฒเชพ เชตเชฟเชถเซเชฒเซเชทเชฟเชค เชเชฐเชตเซ เชเชตเชถเซเชฏเช เชเซ.
เชเชพเชฐเชฃ เชเซ เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชเซ
เช
เชฎเซ เชตเชฟเชจเชเชคเซเชจเชพ เชฎเซเชเซเชฏ เชญเชพเชเชจเซ เช
เชฎเชพเชฐเชพ เชเชพเชฐเซเชฏเชฎเชพเช เชเชจเชชเซเช เชคเชฐเซเชเซ เชซเซเชก เชเชฐเซเช เชเซเช - เชเชเชเชชเซเช เชชเชฐ เช
เชฎเชจเซ JSON เชเชฌเซเชเซเชเซเชเชจเชพ เชฐเซเชชเชฎเชพเช เชตเชฟเชถเซเชฒเซเชทเชฟเชค เชธเชฟเชจเซเชเซเชเซเชธ เชเซเชฐเซ เชฎเชณเซ เชเซ.
เชนเชตเซ เชเชชเชฃเซ เช เชเชพเชกเชฎเชพเชเชฅเซ เชตเชฟเชฐเซเชฆเซเชง เชฆเชฟเชถเชพเชฎเชพเช เชฆเซเชกเซ เชถเชเซเช เชเซเช เช
เชจเซ เช
เชฎเชจเซ เชเซเชเชคเชพ เชเชจเซเชกเซเชจเซเชเซเชธ, เชเชฒเชฐเชฟเชเช เช
เชจเซ เชซเซเชฐเซเชฎเซเชเชฟเชเช เชธเชพเชฅเซ เชตเชฟเชจเชเชคเซ เชเชธเซเชฎเซเชฌเชฒ เชเชฐเซ เชถเชเซเช เชเซเช. เชจเชพ, เช เชตเซเชตเชฟเชงเซเชฏเชชเซเชฐเซเชฃ เชจเชฅเซ, เชชเชฐเชเชคเซ เช
เชฎเชจเซ เชฒเชพเชเซเชฏเซเช เชเซ เช เช
เชจเซเชเซเชณ เชฐเชนเซเชถเซ.
เชฎเซเชชเชฟเชเช เชเซเชตเซเชฐเซ เช เชจเซ เชชเซเชฒเชพเชจ เชจเซเชกเซเชธ
เชนเชตเซ เชเชพเชฒเซ เชเซเชเช เชเซ เชเชชเชฃเซ เชชเซเชฐเชฅเชฎ เชเชฐเชฃเชฎเชพเช เชเซ เชฏเซเชเชจเชพเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเชฏเซเช เชเซ เช เชจเซ เชฌเซเชเชพเชฎเชพเช เชเชชเชฃเซ เชเซเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซเชฏเซเช เชเซ เชคเซ เชเซเชตเซเชฐเซ เชเซเชตเซ เชฐเซเชคเซ เชเซเชกเซ เชถเชเซเช.
เชเชพเชฒเซ เชเช เชธเชฐเชณ เชเชฆเชพเชนเชฐเชฃ เชฒเชเช - เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชเช เชเซเชตเซเชฐเซ เชเซ เชเซ CTE เชเชจเชฐเซเช เชเชฐเซ เชเซ เช
เชจเซ เชคเซเชฎเชพเชเชฅเซ เชฌเซ เชตเชพเชฐ เชตเชพเชเชเซ เชเซ. เชคเซ เชเชตเซ เชฏเซเชเชจเชพ เชฌเชจเชพเชตเซ เชเซ.
CTE
เชเซ เชคเชฎเซ เชคเซเชจเซ เชงเซเชฏเชพเชจเชฅเซ เชเซเชถเซ, เชคเซ เชเชตเซเชคเซเชคเชฟ 12 เชธเซเชงเซ (เช
เชฅเชตเชพ เชเซเชตเชฐเซเชกเชฅเซ เชคเซเชจเซ เชถเชฐเซเชเชค เชเชฐเซเชจเซ MATERIALIZED
) เชฐเชเชจเชพ
เชเชจเซ เช
เชฐเซเชฅ เช เชเซ เชเซ เชเซ เชเชชเชฃเซ เชตเชฟเชจเชเชคเซเชฎเชพเช เชเซเชฏเชพเชเช CTE เชเชจเชฐเซเชถเชจ เช
เชจเซ เชชเซเชฒเชพเชจเชฎเชพเช เชเซเชฏเชพเชเช เชจเซเชก เชเซเชเช เชเซเช CTE
, เชคเซ เชชเชเซ เช เชเชพเชเช เซ เชเซเชเซเชเชธเชชเชฃเซ เชเชเชฌเซเชเชพ เชธเชพเชฅเซ "เชฒเชกเชพเช" เชเชฐเซ เชเซ, เช
เชฎเซ เชคเชฐเชค เช เชคเซเชฎเชจเซ เชเซเชกเซ เชถเชเซเช เชเซเช.
เชซเซเชฆเชกเซ เชธเชพเชฅเซ เชธเชฎเชธเซเชฏเชพ: CTE เชจเซเชธเซเช เชเชฐเซ เชถเชเชพเชฏ เชเซ.
เชคเซเชฏเชพเช เชเซเชฌ เช เชจเชฌเชณเชพ เชจเซเชธเซเชเซเชก เชเซ, เช
เชจเซ เชคเซ เช เชจเชพเชฎเชจเชพ เชชเชฃ เชเซ. เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชคเชฎเซ เช
เชเชฆเชฐ เชเชฐเซ เชถเชเซ เชเซ CTE A
เชฌเชจเชพเชตเชตเชพ CTE X
, เช
เชจเซ เช
เชเชฆเชฐ เชธเชฎเชพเชจ เชธเซเชคเชฐเซ CTE B
เช เชซเชฐเซ เชเชฐเซ CTE X
:
WITH A AS (
WITH X AS (...)
SELECT ...
)
, B AS (
WITH X AS (...)
SELECT ...
)
...
เชธเชฐเชเชพเชฎเชฃเซ เชเชฐเชคเซ เชตเชเชคเซ, เชคเชฎเชพเชฐเซ เช เชธเชฎเชเชตเซเช เชเซเชเช. เชเชจเซ โเชคเชฎเชพเชฐเซ เชเชเชเซเชฅเซโ เชธเชฎเชเชตเซเช - เชฏเซเชเชจเชพ เชเซเชตเซ, เชตเชฟเชจเชเชคเซเชจเซเช เชถเชฐเซเชฐ เชชเชฃ เชเซเชตเซเช - เชเซเชฌ เชฎเซเชถเซเชเซเชฒ เชเซ. เชเซ เชคเชฎเชพเชฐเซ CTE เชเชจเชฐเซเชถเชจ เชเชเชฟเชฒ เชเซ, เชจเซเชธเซเชเซเชก เชเซ เช เชจเซ เชตเชฟเชจเชเชคเซเช เชฎเซเชเซ เชเซ, เชคเซ เชคเซ เชธเชเชชเซเชฐเซเชฃเชชเชฃเซ เชฌเซเชญเชพเชจ เชเซ.
UNION
เชเซ เชเชชเชฃเซ เชชเชพเชธเซ เชเซเชตเซเชฐเซ เชฎเชพเช เชเซเชตเชฐเซเชก เชนเซเชฏ UNION [ALL]
(เชฌเซ เชจเชฎเซเชจเชพเชเชจเซ เชเซเชกเชตเชพเชจเซเช เชเชชเชฐเซเชเชฐ), เชชเชเซ เชฏเซเชเชจเชพเชฎเชพเช เชคเซ เชเซเชฏเชพเช เชคเซ เชจเซเชกเชจเซ เช
เชจเซเชฐเซเชช เชเซ Append
, เช
เชฅเชตเชพ เชเซเชเชฒเชพเช Recursive Union
.
เชเซ เชเชชเชฐ "เชเชชเชฐ" เชเซ UNION
- เช เชเชชเชฃเชพ เชจเซเชกเชจเซ เชชเซเชฐเชฅเชฎ เชตเชเชถเช เชเซ, เชเซ "เชจเซเชเซ" เชเซ - เชฌเซเชเซ. เชเซ เชฎเชพเชฐเชซเชคเซ UNION
เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชเช เชธเชพเชฅเซ เชเชฃเชพ เชฌเซเชฒเซเชเซเชธ "เชเซเชเชฆเชฐเชตเชพเชณเซเช" เชเซ, เชชเชเซ Append
-เชคเซเชฏเชพเช เชนเชเซ เชชเชฃ เชฎเชพเชคเซเชฐ เชเช เชจเซเชก เชนเชถเซ, เชชเชฐเชเชคเซ เชคเซเชฎเชพเช เชฌเซ เชจเชนเซเช, เชชเชฐเชเชคเซ เชเชฃเชพ เชฌเชพเชณเชเซ เชนเชถเซ - เช
เชจเซเชเซเชฐเชฎเซ เชคเซเช เชเซ เชเซเชฐเชฎเชฎเชพเช เชเชพเชฏ เชเซ เชคเซ เชชเซเชฐเชฎเชพเชฃเซ:
(...) -- #1
UNION ALL
(...) -- #2
UNION ALL
(...) -- #3
Append
-> ... #1
-> ... #2
-> ... #3
เชซเซเชฆเชกเซ เชธเชพเชฅเซ เชธเชฎเชธเซเชฏเชพ: เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชจเชฎเซเชจเชพ เชชเซเชขเซเชจเซ เช
เชเชฆเชฐ (WITH RECURSIVE
) เชชเชฃ เชเช เชเชฐเชคเชพเช เชตเชงเซ เชนเซเช เชถเชเซ เชเซ UNION
. เชชเชฐเชเชคเซ เชเซเชฒเซเชฒเชพ เชเช เชชเชเซ เชฎเชพเชคเซเชฐ เชเซเชฒเซเชฒเซ เชฌเซเชฒเซเช เชนเชเชฎเซเชถเชพ เชชเซเชจเชฐเชพเชตเชฐเซเชคเชฟเชค เชนเซเชฏ เชเซ UNION
. เชเชชเชฐเชจเซ เชฆเชฐเซเช เชตเชธเซเชคเซ เชเช เชเซ, เชชเชฐเชเชคเซ เช
เชฒเช เชเซ UNION
:
WITH RECURSIVE T AS(
(...) -- #1
UNION ALL
(...) -- #2, ััั ะบะพะฝัะฐะตััั ะณะตะฝะตัะฐัะธั ััะฐััะพะฒะพะณะพ ัะพััะพัะฝะธั ัะตะบัััะธะธ
UNION ALL
(...) -- #3, ัะพะปัะบะพ ััะพั ะฑะปะพะบ ัะตะบัััะธะฒะฝัะน ะธ ะผะพะถะตั ัะพะดะตัะถะฐัั ะพะฑัะฐัะตะฝะธะต ะบ T
)
...
เชคเชฎเชพเชฐเซ เชเชตเชพ เชเชฆเชพเชนเชฐเชฃเซเชจเซ "เชเซเชเซ เชฐเชนเซเชตเชพ" เชฎเชพเชเซ เชชเชฃ เชธเชเซเชทเชฎ เชฌเชจเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ. เช เชเชฆเชพเชนเชฐเชฃเชฎเชพเช เชเชชเชฃเซ เชคเซ เชเซเชเช เชเซเช UNION
-เช
เชฎเชพเชฐเซ เชตเชฟเชจเชเชคเซเชฎเชพเช 3 เชตเชฟเชญเชพเชเซ เชนเชคเชพ. เชคเชฆเชจเซเชธเชพเชฐ, เชเช UNION
ัะพะพัะฒะตัััะฒัะตั Append
-เชจเซเชก, เช
เชจเซ เชฌเซเชเชพเชจเซ - Recursive Union
.
เชกเซเชเชพ เชตเชพเชเชเซ-เชฒเชเซ
เชฌเชงเซเช เชเซเช เชตเชตเชพเชฎเชพเช เชเชตเซเชฏเซเช เชเซ, เชนเชตเซ เชเชชเชฃเซ เชเชพเชฃเซเช เชเซเช เชเซ เชตเชฟเชจเชเชคเซเชจเซ เชเชฏเซ เชญเชพเช เชฏเซเชเชจเชพเชจเชพ เชเชฏเชพ เชญเชพเชเชจเซ เช เชจเซเชฐเซเชช เชเซ. เช เชจเซ เช เชเซเชเชกเชพเชเชฎเชพเช เชเชชเชฃเซ เชธเชฐเชณเชคเชพเชฅเซ เช เชจเซ เชเซเชฆเชฐเชคเซ เชฐเซเชคเซ เชคเซ เชตเชธเซเชคเซเช เชถเซเชงเซ เชถเชเซเช เชเซเช เชเซ "เชตเชพเชเชเซ เชถเชเชพเชฏ เชคเซเชตเชพ" เชเซ.
เชชเซเชฐเชถเซเชจเชจเชพ เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ, เช
เชฎเชจเซ เชเชฌเชฐ เชจเชฅเซ เชเซ เชคเซ เชเซเชฌเชฒ เชเซ เชเซ CTE, เชชเชฐเชเชคเซ เชคเซ เชธเชฎเชพเชจ เชจเซเชก เชฆเซเชตเชพเชฐเชพ เชจเชฟเชฏเซเชเซเชค เชเชฐเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชเซ. RangeVar
. เช
เชจเซ "เชตเชพเชเชเชจเชเซเชทเชฎเชคเชพ" เชจเซ เชฆเซเชฐเชทเซเชเชฟเช, เช เชจเซเชกเซเชธเชจเซ เชเชเชฆเชฎ เชฎเชฐเซเชฏเชพเชฆเชฟเชค เชธเชฎเซเชน เชชเชฃ เชเซ:
Seq Scan on [tbl]
Bitmap Heap Scan on [tbl]
Index [Only] Scan [Backward] using [idx] on [tbl]
CTE Scan on [cte]
Insert/Update/Delete on [tbl]
เช
เชฎเซ เชชเซเชฒเชพเชจ เช
เชจเซ เชเซเชตเซเชฐเซเชจเซเช เชฎเชพเชณเชเซเช เชเชพเชฃเซเช เชเซเช, เช
เชฎเซ เชฌเซเชฒเซเชเซเชธเชจเชพ เชชเชคเซเชฐเชตเซเชฏเชตเชนเชพเชฐ เชเชพเชฃเซเช เชเซเช, เช
เชฎเซ เชเชฌเซเชเซเชเซเชเชจเชพ เชจเชพเชฎ เชเชพเชฃเซเช เชเซเช - เช
เชฎเซ เชเช-เชฅเซ-เชเช เชธเชฐเชเชพเชฎเชฃเซ เชเชฐเซเช เชเซเช.
เชซเชฐเซ เชเชพเชฐเซเชฏ "เชเช เชซเซเชฆเชกเซ เชธเชพเชฅเซ". เช
เชฎเซ เชตเชฟเชจเชเชคเซ เชฒเชเช เชเซเช, เชคเซเชจเซ เช
เชฎเชฒเชฎเชพเช เชฎเซเชเซเช เชเซเช, เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชเซเช เชเชชเชจเชพเชฎ เชจเชฅเซ - เช
เชฎเซ เชคเซเชจเซ เชเช เช CTE เชฅเซ เชฌเซ เชตเชพเชฐ เชตเชพเชเชเซเช เชเซเช.
เช
เชฎเซ เชฏเซเชเชจเชพ เชเซเชเช เชเซเช - เชธเชฎเชธเซเชฏเชพ เชถเซเช เชเซ? เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชเชชเชจเชพเชฎ เชถเชพ เชฎเชพเชเซ เชนเชคเซเช? เช
เชฎเซ เชคเซเชจเซ เชเชฐเซเชกเชฐ เชเชฐเซเชฏเซ เชจเชฅเซ. เชคเซเชจเซ เชเชตเซ โเชจเชเชฌเชฐ เชจเชเชฌเชฐโ เชเซเชฏเชพเชเชฅเซ เชฎเชณเซ?
PostgreSQL เชคเซเชจเซ เชชเซเชคเซ เชเชฎเซเชฐเซ เชเซ. เชคเชฎเชพเชฐเซ เชซเชเซเชค เชคเซ เชธเชฎเชเชตเชพเชจเซ เชเชฐเซเชฐ เชเซ เชฎเชพเชคเซเชฐ เชเชตเชพ เชเชชเชจเชพเชฎ เช เชฎเชพเชฐเชพ เชฎเชพเชเซ, เชฏเซเชเชจเชพ เชธเชพเชฅเซ เชธเชฐเชเชพเชฎเชฃเซ เชเชฐเชตเชพเชจเชพ เชนเซเชคเซเชฅเซ, เชคเซเชจเซ เชเซเช เช เชฐเซเชฅ เชจเชฅเซ, เชคเซ เช เชนเซเช เชธเชฐเชณ เชฐเซเชคเซ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ. เชเชพเชฒเซ เชคเซเชจเชพ เชชเชฐ เชงเซเชฏเชพเชจ เชจ เชเชชเซเช.
เชฌเซเชเซ เชเชพเชฐเซเชฏ "เชเช เชซเซเชฆเชกเซ เชธเชพเชฅเซ": เชเซ เชเชชเชฃเซ เชชเชพเชฐเซเชเซเชถเชจ เชเชฐเซเชฒ เชเซเชทเซเชเชเชฎเชพเชเชฅเซ เชตเชพเชเชเซ เชฐเชนเซเชฏเชพ เชเซเช, เชคเซ เชเชชเชฃเชจเซ เชจเซเชก เชฎเชณเชถเซ Append
เช
เชฅเชตเชพ Merge Append
, เชเซเชฎเชพเช เชฎเซเชเซ เชธเชเชเซเชฏเชพเชฎเชพเช "เชฌเชพเชณเชเซ" เชนเชถเซ, เช
เชจเซ เชเซเชฎเชพเชเชฅเซ เชฆเชฐเซเช เชเซเชเช เชฐเซเชคเซ เชนเชถเซ Scan
เชเซเชฌเชฒ-เชตเชฟเชญเชพเชเชฎเชพเชเชฅเซ เชเชฎ: Seq Scan
, Bitmap Heap Scan
เช
เชฅเชตเชพ Index Scan
. เชชเชฐเชเชคเซ, เชเซเช เชชเชฃ เชธเชเชเซเชเซเชฎเชพเช, เช "เชฌเชพเชณเชเซ" เชเชเชฟเชฒ เชชเซเชฐเชถเซเชจเซ เชนเชถเซ เชจเชนเซเช - เช เชฐเซเชคเซ เช เชเชพเชเช เซเชจเซ เช
เชฒเช เชเชฐเซ เชถเชเชพเชฏ เชเซ Append
เช
เชเชคเซ UNION
.
เช
เชฎเซ เชเชตเซ เชเชพเชเช เซ เชชเชฃ เชธเชฎเชเซเช เชเซเช, เชคเซเชฎเชจเซ "เชเช เชเซเชเชเซเชฎเชพเช" เชเชเชคเซเชฐเชฟเชค เชเชฐเซเช เชเซเช เช
เชจเซ เชเชนเซเช เชเซเช: "เชคเชฎเซ เชฎเซเชเซเชเซเชฌเชฒเชฎเชพเชเชฅเซ เชเซ เชตเชพเชเชเซ เชเซ เชคเซ เชฌเชงเซเช เช
เชนเซเช เช
เชจเซ เชเชพเชก เชจเซเชเซ เชเซ".
"เชธเชฐเชณ" เชกเซเชเชพ เชชเซเชฐเชพเชชเซเชค เชเชฐเชคเซ เชจเซเชกเซเชธ
Values Scan
เชฏเซเชเชจเชพเชฎเชพเช เช
เชจเซเชฐเซเชช เชเซ VALUES
เชตเชฟเชจเชเชคเซเชฎเชพเช.
Result
เชตเชเชฐ เชตเชฟเชจเชเชคเซ เชเซ FROM
เชเชฎเซ เชเซ SELECT 1
. เช
เชฅเชตเชพ เชเซเชฏเชพเชฐเซ เชคเชฎเชพเชฐเซ เชชเชพเชธเซ เชเชฐเชพเชฆเชพเชชเซเชฐเซเชตเช เชเซเชเซ เช
เชญเชฟเชตเซเชฏเชเซเชคเชฟ เชนเซเชฏ WHERE
-block (เชชเชเซ เชเชเซเชฐเซเชฌเซเชฏเซเช เชฆเซเชเชพเชฏ เชเซ One-Time Filter
):
EXPLAIN ANALYZE
SELECT * FROM pg_class WHERE FALSE; -- ะธะปะธ 0 = 1
Result (cost=0.00..0.00 rows=0 width=230) (actual time=0.000..0.000 rows=0 loops=1)
One-Time Filter: false
Function Scan
เชธเชฎเชพเชจ เชจเชพเชฎเชจเชพ SRF เชฎเชพเชเซ โเชจเชเชถเซโ.
เชชเชฐเชเชคเซ เชจเซเชธเซเชเซเชก เชเซเชตเซเชฐเซเช เชธเชพเชฅเซ เชฌเชงเซเช เชตเชงเซ เชเชเชฟเชฒ เชเซ - เชเชฎเชจเชธเซเชฌเซ, เชคเซ เชนเชเชฎเซเชถเชพ เชฌเชฆเชฒเชพเชคเชพ เชจเชฅเซ InitPlan
/SubPlan
. เชเซเชฏเชพเชฐเซเช เชคเซเช เชฎเชพเช เชซเซเชฐเชตเซ เชเซ ... Join
เช
เชฅเชตเชพ ... Anti Join
, เชเชพเชธ เชเชฐเซเชจเซ เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชเชเชเช เชฒเชเซ เชเซ WHERE NOT EXISTS ...
. เช
เชจเซ เช
เชนเซเช เชคเซเชฎเชจเซ เชเซเชกเชตเชพเชจเซเช เชนเชเชฎเซเชถเชพ เชถเชเซเชฏ เชจเชฅเซ - เชฏเซเชเชจเชพเชจเชพ เชเซเชเซเชธเซเชเชฎเชพเช เชฏเซเชเชจเชพเชจเชพ เชเชพเชเช เซเชจเซ เช
เชจเซเชฐเซเชช เชเซเช เชเชชเชฐเซเชเชฐเซเชธ เชจเชฅเซ.
เชซเชฐเซ เชเชพเชฐเซเชฏ "เชเช เชซเซเชฆเชกเซ เชธเชพเชฅเซ": เชเซเชเชฒเชพเช VALUES
เชตเชฟเชจเชเชคเซเชฎเชพเช. เช เชเชฟเชธเซเชธเชพเชฎเชพเช เช
เชจเซ เชฏเซเชเชจเชพเชฎเชพเช เชคเชฎเชจเซ เชเชฃเชพ เชเชพเชเช เซ เชฎเชณเชถเซ Values Scan
.
"เชเซเชฐเชฎเชพเชเชเชฟเชค" เชชเซเชฐเชคเซเชฏเชฏเซ เชคเซเชฎเชจเซ เชเช เชฌเซเชเชพเชฅเซ เช
เชฒเช เชชเชพเชกเชตเชพเชฎเชพเช เชฎเชฆเชฆ เชเชฐเชถเซ - เชคเซ เชเซเชฐเชฎเชฎเชพเช เชฌเชฐเชพเชฌเชฐ เชเชฎเซเชฐเชตเชพเชฎเชพเช เชเชตเซ เชเซ เชเซเชฎเชพเช เช
เชจเซเชฐเซเชช เชชเซเชฐเชคเซเชฏเชฏเซ เชเซเชตเชพ เชฎเชณเซ เชเซ. VALUES
- เชเชชเชฐเชฅเซ เชจเซเชเซ เชธเซเชงเซ เชตเชฟเชจเชเชคเซ เชธเชพเชฅเซ เช
เชตเชฐเซเชงเชฟเชค เชเชฐเซ.
เชกเซเชเชพ เชชเซเชฐเซเชธเซเชธเชฟเชเช
เชเชตเซเช เชฒเชพเชเซ เชเซ เชเซ เช
เชฎเชพเชฐเซ เชตเชฟเชจเชเชคเซเชฎเชพเช เชฌเชงเซเช เช เชเชเซเชฒเชพเช เชเชฏเซเช เชเซ - เชเซ เชฌเชพเชเซ เชเซ เชคเซ เชเซ Limit
.
เชชเชฐเชเชคเซ เช
เชนเซเช เชฌเชงเซเช เชธเชฐเชณ เชเซ - เชเซเชฎ เชเซ เชเชพเชเช เซ Limit
, Sort
, Aggregate
, WindowAgg
, Unique
เชตเชฟเชจเชเชคเซเชฎเชพเช เชธเชเชฌเชเชงเชฟเชค เชเชชเชฐเซเชเชฐเซเชจเซ เชเช-เชเช เชธเชพเชฅเซ โเชจเชเชถเซโ เชเชชเซ, เชเซ เชคเซเช เชคเซเชฏเชพเช เชนเซเชฏ เชคเซ. เช
เชนเซเช เชเซเช "เชคเชพเชฐเชพ" เช
เชฅเชตเชพ เชฎเซเชถเซเชเซเชฒเซเช เชจเชฅเซ.
เชเซเชกเชพเช
เชเซเชฏเชพเชฐเซ เชเชชเชฃเซ เชญเซเชเชพ เชฅเชตเชพ เชฎเชพเชเชเซเช เชเซเช เชคเซเชฏเชพเชฐเซ เชฎเซเชถเซเชเซเชฒเซเช เชเชญเซ เชฅเชพเชฏ เชเซ JOIN
เชชเซเชคเชพเชจเซ เชตเชเซเชเซ. เช เชนเชเชฎเซเชถเชพ เชถเชเซเชฏ เชจเชฅเซ, เชชเชฐเชเชคเซ เชคเซ เชถเชเซเชฏ เชเซ.
เชเซเชตเซเชฐเซ เชชเชพเชฐเซเชธเชฐเชจเชพ เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ, เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชจเซเชก เชเซ JoinExpr
, เชเซเชฎเชพเช เชฌเชฐเชพเชฌเชฐ เชฌเซ เชฌเชพเชณเชเซ เชเซ - เชกเชพเชฌเซ เช
เชจเซ เชเชฎเชฃเซ. เช, เชคเซ เชฎเซเชเชฌ, เชคเชฎเชพเชฐเซ เชเซเชกเชพเชตเชพ เชฎเชพเชเซ "เชเชชเชฐ" เชถเซเช เชเซ เช
เชจเซ เชตเชฟเชจเชเชคเซเชฎเชพเช "เชจเซเชเซ" เชถเซเช เชฒเชเซเชฒเซเช เชเซ.
เช
เชจเซ เชฏเซเชเชจเชพเชจเชพ เชฆเซเชทเซเชเชฟเชเซเชฃเชฅเซ, เช เชเซเชเชฒเชพเชเชจเชพ เชฌเซ เชตเชเชถเชเซ เชเซ * Loop
/* Join
-เชจเซเชก. Nested Loop
, Hash Anti Join
,... - เชคเซเชจเชพ เชเซเชตเซเช เชเชเชเช.
เชเชพเชฒเซ เชธเชฐเชณ เชคเชฐเซเชเชจเซ เชเชชเชฏเซเช เชเชฐเซเช: เชเซ เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชเซเชทเซเชเชเซ A เช
เชจเซ B เชเซ เชเซ เชฏเซเชเชจเชพเชฎเชพเช เชเชเชฌเซเชเชพเชจเซ "เชเซเชกเชพเชตเซ" เชเซ, เชคเซ เชตเชฟเชจเชเชคเซเชฎเชพเช เชคเซเช เชเซเชฏเชพเช เชคเซ เชธเซเชฅเชฟเชค เชฅเช เชถเชเซ เชเซ A-JOIN-B
, เช
เชฅเชตเชพ B-JOIN-A
. เชเชพเชฒเซ เช เชฐเซเชคเซ เชญเซเชเชพ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช, เชเชพเชฒเซ เชฌเซเชเซ เชฐเซเชคเซ เชญเซเชเชพ เชเชฐเชตเชพเชจเซ เชชเซเชฐเชฏเชพเชธ เชเชฐเซเช, เช
เชจเซ เช เชฐเซเชคเซ เชเซเชฏเชพเช เชธเซเชงเซ เชเชชเชฃเซ เชเชตเซ เชเซเชกเซเช เชธเชฎเชพเชชเซเชค เชจ เชฅเชเช เชคเซเชฏเชพเช เชธเซเชงเซ.
เชเชพเชฒเซ เชเชชเชฃเซเช เชธเชฟเชจเซเชเซเชเซเชธ เชเซเชฐเซ เชฒเชเช, เชเชชเชฃเซ เชฏเซเชเชจเชพ เชฒเชเช, เชคเซเชฎเชจเซ เชเซเชเช... เชธเชฎเชพเชจ เชจเชฅเซ!
เชเชพเชฒเซ เชคเซเชจเซ เชเซเชฐเชพเชซเชจเชพ เชฐเซเชชเชฎเชพเช เชซเชฐเซเชฅเซ เชฆเซเชฐเซเช - เชเชน, เชคเซ เชชเชนเซเชฒเซเชฅเซ เช เชเชเชเช เชเซเชตเซเช เชฒเชพเชเซ เชเซ!
เชเชพเชฒเซ เชจเซเชเชง เชฒเชเช เชเซ เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชเชพเชเช เซ เชเซ เชเซ เชเช เชธเชพเชฅเซ เชฌเชพเชณเชเซ B เช
เชจเซ C เชงเชฐเชพเชตเซ เชเซ - เช
เชฎเซ เชเชฏเชพ เชเซเชฐเชฎเชฎเชพเช เชเชพเชณเชเซ เชฒเซเชคเชพ เชจเชฅเซ. เชเชพเชฒเซ เชคเซเชฎเชจเซ เชญเซเชเชพ เชเชฐเซเช เช
เชจเซ เชจเซเชกเชจเชพ เชเชฟเชคเซเชฐเชจเซ เชซเซเชฐเชตเซเช.
เชเชพเชฒเซ เชซเชฐเซ เชเซเชเช. เชนเชตเซ เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชฌเชพเชณเชเซ A เช
เชจเซ เชเซเชกเซเช (B + C) เชธเชพเชฅเซ เชจเซเชกเซเชธ เชเซ - เชคเซเชฎเชจเซ เชธเชพเชฅเซ เชชเชฃ เชธเซเชธเชเชเชค เชเซ.
เชฎเชนเชพเชจ! เชคเซ เชคเชพเชฐเชฃ เชเชชเซ เชเซ เชเซ เช
เชฎเซ เช เชฌเซ เชเซเช JOIN
เชชเซเชฒเชพเชจ เชจเซเชกเซเชธ เชธเชพเชฅเซ เชตเชฟเชจเชเชคเซเชฅเซ เชธเชซเชณเชคเชพเชชเซเชฐเซเชตเช เชเซเชกเชตเชพเชฎเชพเช เชเชตเซเชฏเชพ เชนเชคเชพ.
เช
เชฐเซ, เช เชธเชฎเชธเซเชฏเชพ เชนเชเชฎเซเชถเชพ เชนเชฒ เชฅเชคเซ เชจเชฅเซ.
เชเชฆเชพเชนเชฐเชฃ เชคเชฐเซเชเซ, เชเซ เชตเชฟเชจเชเชคเซเชฎเชพเช เชนเซเชฏ A JOIN B JOIN C
, เช
เชจเซ เชฏเซเชเชจเชพเชฎเชพเช, เชธเซ เชชเซเชฐเชฅเชฎ, "เชฌเชพเชนเซเชฏ" เชจเซเชกเซเชธ A เช
เชจเซ C เชเซเชกเชพเชฏเซเชฒเชพ เชนเชคเชพ. เชชเชฐเชเชคเซ เชตเชฟเชจเชเชคเซเชฎเชพเช เชเชตเชพ เชเซเช เชเชชเชฐเซเชเชฐ เชจเชฅเซ, เช
เชฎเชพเชฐเซ เชชเชพเชธเซ เชนเชพเชเชฒเชพเชเช เชเชฐเชตเชพ เชฎเชพเชเซ เชเชเช เชจเชฅเซ, เชธเชเชเซเชค เชเซเชกเชตเชพ เชฎเชพเชเซ เชเชเช เชจเชฅเซ. เชเซเชฏเชพเชฐเซ เชคเชฎเซ เชฒเชเซ เชเซ เชคเซเชฏเชพเชฐเซ เชคเซ "เช
เชฒเซเชชเชตเชฟเชฐเชพเชฎ" เชธเชพเชฅเซ เชธเชฎเชพเชจ เชเซ A, B
.
เชชเชฐเชเชคเซ, เชฎเซเชเชพเชญเชพเชเชจเชพ เชเชฟเชธเซเชธเชพเชเชฎเชพเช, เชฒเชเชญเช เชคเชฎเชพเชฎ เชเชพเชเช เซ "เชเซเชฒเซเชฒเซ" เชนเซเช เชถเชเซ เชเซ เช
เชจเซ เชคเชฎเซ เชธเชฎเชฏเชธเชฐ เชกเชพเชฌเซ เชฌเชพเชเซเช เช เชชเซเชฐเชเชพเชฐเชจเซ เชชเซเชฐเซเชซเชพเชเชฒเชฟเชเช เชฎเซเชณเชตเซ เชถเชเซ เชเซ - เชถเชพเชฌเซเชฆเชฟเช เชฐเซเชคเซ, เชเซเชฎ เชเซ Google Chrome เชฎเชพเช เชเซเชฏเชพเชฐเซ เชคเชฎเซ JavaScript เชเซเชกเชจเซเช เชตเชฟเชถเซเชฒเซเชทเชฃ เชเชฐเซ เชเซ. เชคเชฎเซ เชเซเช เชถเชเซ เชเซ เชเซ เชฆเชฐเซเช เชฒเชพเชเชจ เช
เชจเซ เชฆเชฐเซเช เชธเซเชเซเชเชฎเซเชจเซเชเชจเซ "เชเชเซเชเซเชเซเชฏเซเช" เชเชฐเชตเชพเชฎเชพเช เชเซเชเชฒเซ เชธเชฎเชฏ เชฒเชพเชเซเชฏเซ.
เช
เชจเซ เช เชฌเชงเชพเชจเซ เชเชชเชฏเซเช เชคเชฎเชพเชฐเชพ เชฎเชพเชเซ เชตเชงเซ เช
เชจเซเชเซเชณ เชฌเชจเชพเชตเชตเชพ เชฎเชพเชเซ, เช
เชฎเซ เชธเซเชเซเชฐเซเช เชฌเชจเชพเชตเซเชฏเซเช เชเซ
เชเซ เชคเชฎเชพเชฐเซ เชซเชเซเชค เชตเชพเชเชเซ เชจ เชถเชเชพเชฏ เชคเซเชตเซ เชเซเชตเซเชฐเซ เชชเชฐเซเชฏเชพเชชเซเชค เชธเซเชตเชฐเซเชชเชฎเชพเช เชฒเชพเชตเชตเชพเชจเซ เชเชฐเซเชฐ เชนเซเชฏ, เชคเซ เชเชชเชฏเซเช เชเชฐเซ
เชธเซเชฐเซเชธ: www.habr.com