Kana isu tiine keyword mumubvunzo UNION [ALL] (opareta yekubatanidza masampuli maviri), ipapo muchirongwa inoenderana chero node Append, kana zvimwe Recursive Union.
Icho chiri "kumusoro" kumusoro UNION - uyu ndiye muzukuru wekutanga we node yedu, iyo "pasi" - yechipiri. Kana kuburikidza UNION isu tine akati wandei mabhuraki "glued" kamwechete, ipapo Append-kuchave kuine node imwe chete, asi haizove nevaviri, asi vana vazhinji - mukurongeka kwavanoenda, zvichiteerana:
(...) -- #1
UNION ALL
(...) -- #2
UNION ALL
(...) -- #3
Append
-> ... #1
-> ... #2
-> ... #3
Dambudziko neasterisk: mukati recursive sampling chizvarwa (WITH RECURSIVE) inogonawo kuva yakawanda UNION. Asi chete bhuroka yekupedzisira mushure meyekupedzisira ndiyo inogara ichidzokorodza UNION. Zvose zviri pamusoro ndezvimwe, asi zvakasiyana UNION:
WITH RECURSIVE T AS(
(...) -- #1
UNION ALL
(...) -- #2, ΡΡΡ ΠΊΠΎΠ½ΡΠ°Π΅ΡΡΡ Π³Π΅Π½Π΅ΡΠ°ΡΠΈΡ ΡΡΠ°ΡΡΠΎΠ²ΠΎΠ³ΠΎ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠ΅ΠΊΡΡΡΠΈΠΈ
UNION ALL
(...) -- #3, ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎΡ Π±Π»ΠΎΠΊ ΡΠ΅ΠΊΡΡΡΠΈΠ²Π½ΡΠΉ ΠΈ ΠΌΠΎΠΆΠ΅Ρ ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ ΠΎΠ±ΡΠ°ΡΠ΅Π½ΠΈΠ΅ ΠΊ T
)
...
Iwe unofanirwawo kukwanisa "kunamatira" mienzaniso yakadaro. Mumuenzaniso uyu tinoona izvozvo UNION-paive nezvikamu zvitatu muchikumbiro chedu. Naizvozvo, imwe UNION ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ck Append-node, uye kune imwe - Recursive Union.
Kubva pamubvunzo wekutarisa, hatizive kana iri tafura kana CTE, asi ivo vanosarudzwa neinode imwechete. RangeVar. Uye maererano ne "kuverenga", iyi zvakare yakaganhurwa seti yemanodhi:
Result chikumbiro pasina FROM aina ye SELECT 1. Kana kana iwe uine nemaune kutaura kwenhema mukati WHERE-block (ipapo hunhu hunooneka One-Time Filter):
EXPLAIN ANALYZE
SELECT * FROM pg_class WHERE FALSE; -- ΠΈΠ»ΠΈ 0 = 1
Uye kubva pakuona kwechirongwa, ava vazukuru vaviri vevamwe * Loop/* Join-node. Nested Loop, Hash Anti Join,... - chimwe chinhu chakadaro.
Ngatishandisei pfungwa dzakareruka: kana isu tine matafura A uye B ayo "akabatana" mumwe nemumwe muchirongwa, saka mukukumbira vanogona kuwanikwa chero A-JOIN-B, kana B-JOIN-A. Ngatiedzei kubatanidza nenzira iyi, ngatiedzei kubatanidza imwe nzira yakapoteredza, uye zvichingodaro kusvikira tapera mapeya akadaro.
Ngatitorei muti wedu we syntax, tora chirongwa chedu, tarisa kwavari ... kwete zvakafanana!
Ngatiidzore zvakare muchimiro chegirafu - o, inotoita sechinhu!
Ngationei kuti tine node dzine vana B uye C panguva imwe chete - hatina basa nehurongwa hupi. Ngativasanganise uye tishandure mufananidzo wenodhi pamusoro.
Ngatitarisei zvakare. Iye zvino tine nodes nevana A uye vaviri vaviri (B + C) - inoenderana navo zvakare.
Somuenzaniso, kana muchikumbiro A JOIN B JOIN C, uye muurongwa, kutanga kwezvose, "kunze" node A uye C. Asi hapana mushandisi akadaro muchikumbiro, isu hatina chatinosimbisa, hapana chatingabatanidza nacho. Ndizvo zvakafanana ne "comma" paunonyora A, B.