рдЫрд╣ рдорд╣реАрдиреЗ рдкрд╣рд▓реЗ, рдореИрдВрдиреЗ рд▓рд╛рд░рд╡реЗрд▓ 3 рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЛрдЬрдЯреЗрдмрд▓ рдмрдВрдбрд▓ рд▓рд┐рдЦрд╛ рдерд╛ред рд▓рд┐рдЦрдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрд┐рд▓ рдХрд╛рд░рд╡рд┐рди рджреНрд╡рд╛рд░рд╛ PHP рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ MySQL рдореЗрдВ рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдФрд░ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдкрд░ рдпрд╣ рдЕрджреНрднреБрдд рдкреНрд░рд╕реНрддреБрддрд┐ рдереА редSo. рдкрджрд╛рдиреБрдХреНрд░рдорд┐рдд рд╕рдВрд░рдЪрдирд╛рдУрдВ рдХреЗ рднрдВрдбрд╛рд░рдг рдФрд░ рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХрдИ рдбреЗрдЯрд╛рдмреЗрд╕ рдбрд┐рдЬрд╝рд╛рдЗрди рдкреИрдЯрд░реНрди рд╣реИрдВ:
- рдЖрд╕рдиреНрди рд╕реВрдЪреА
- рднреМрддрд┐рдХрддрд╛рд╡рд╛рджреА рдкрде
- рдиреЗрд╕реНрдЯреЗрдб рд╕реЗрдЯ
- рдмрдВрдж рдХрд░рдиреЗ рдХреА рдореЗрдЬ
рдХреНрд▓реЛрдЬрд░ рдЯреЗрдмрд▓ рдХреНрдпрд╛ рд╣реИ
рдЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдкреИрдЯрд░реНрди рдХрд╛ рд╕рд╛рд░ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз рдПрдХ рдЕрд▓рдЧ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рдЬрдмрдХрд┐ рдореБрдЦреНрдп рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХреЗрд╡рд▓ рд╕рдВрд╕реНрдерд╛рдУрдВ рдХрд╛ рдбреЗрдЯрд╛ рд╣реЛрддрд╛ рд╣реИред
рд▓рд┐рдВрдХ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рджреЛ рдлрд╝реАрд▓реНрдб рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП:
- рдкреВрд░реНрд╡рдЬ (рдкреВрд░реНрд╡рдЬ) рдХрд╛ рд╕рдВрджрд░реНрдн
- рд╡рдВрд╢рдЬ рдХрд╛ рд╕рдВрджрд░реНрдн
рдЖрдЗрдП рд╣рдо рдПрдХ рдФрд░ рд╕реБрдкрд░рдкреЙрдкрд░ рд╕реАрдПрдордПрд╕ рдмрдирд╛рдиреЗ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд╛рда рдкреГрд╖реНрдареЛрдВ рдХреЗ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдПрдХ рдореЙрдбреНрдпреВрд▓ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рд╣рдореЗрдВ рджреЛ рдЯреЗрдмрд▓ рдЪрд╛рд╣рд┐рдП:
pages
рдореЗрдВ рдкреЗрдЬ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрдЧреАpages_treepath
рдореЗрдВ рдкреЗрдЬ рдкрджрд╛рдиреБрдХреНрд░рдо рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛
рдбреАрдмреА рдЯреЗрдмрд▓ рд╕реНрдХреАрдорд╛рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рд╣рдо рдирд┐рдореНрди рдкреГрд╖реНрда рдкрджрд╛рдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ:

рд╡рдВрд╢рдЬ рдЪрдпрди
рдпрджрд┐ рд╣рдо рдХрдВрдкрдиреА рдХреЗ рд╕реЗрдХреНрд╢рди рдореЗрдВ рд╕рднреА рдкреЗрдЬреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рд╣рдореЗрдВ рдРрд╕реА рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рдорд┐рд▓реЗрдЧреАред
SELECT * FROM pages p JOIN pages_treepath t ON (p.id = t.descendant) WHERE t.ancestor = 1
рдкрд░рд┐рдгрд╛рдо рдХреА рд╢рд╛рдЦрд╛ред рддреАрд░ рдкреГрд╖реНрдареЛрдВ рдХреЗ рдмреАрдЪ рд▓рд┐рдВрдХ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред"рд╡рдВрд╢рдЬ" рдХрд╛ рдЕрд░реНрде рд╣реИ "рд╡рдВрд╢рдЬ", рдФрд░ "рдкреВрд░реНрд╡рдЬ" рдХрд╛ рдЕрд░реНрде рд╣реИ рдкреВрд░реНрд╡рдЬред рддрджрдиреБрд╕рд╛рд░, рд╕рднреА рдмрд╛рд▓ рдкреГрд╖реНрдареЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо
pages_treepath
рд▓рд┐рдВрдХ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ рдмрд╢рд░реНрддреЗ рдХрд┐ рдкреГрд╖реНрда
id
рдХрд╛ рд╡рд╣реА рдЕрд░реНрде рд╣реЛ рдЬреЛ рд╡рдВрд╢ рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореВрд▓ рдкреГрд╖реНрда рдХрд╛ рд▓рд┐рдВрдХ
ancestor
1
, "рдХрдВрдкрдиреА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ" рдкреГрд╖реНрда рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рд╣реИред
рдкреВрд░реНрд╡рдЬ рдирдореВрдирд╛
рдФрд░ рдЕрдм рдиреАрдЪреЗ рд╕реЗ: рдЪрд▓реЛ рдХреЙрд░реНрдкреЛрд░реЗрдЯ рдкреГрд╖реНрда рдкрд░ рд╕рднреА "рдорд╛рддрд╛-рдкрд┐рддрд╛" рджреЗрдЦреЗрдВред
SELECT * FROM pages p JOIN pages_treepath t ON (p.id = t.ancestor) WHERE t.descendant = 11
рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╡рд┐рдкрд░реАрддред рд╣рдо рдкрджрд╛рдиреБрдХреНрд░рдо рдореЗрдВ рдЙрдЪреНрдЪрддрд░ рдкреГрд╖реНрдареЛрдВ рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП, рд╣рдо рдЗрд╕ рд╢рд░реНрдд рдХреЗ рд╕рд╛рде рд▓рд┐рдВрдХ рдХреА рддрд╛рд▓рд┐рдХрд╛ рд╕рдВрд▓рдЧреНрди рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдкреГрд╖реНрда
id
рдкреВрд░реНрд╡рдЬ
ancestor
рд╕реЗ рд▓рд┐рдВрдХ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП, рдФрд░ рд╡рдВрд╢рдЬ рд▓рд┐рдВрдХ рджреНрд╡рд╛рд░рд╛ рдЪрдпрди рдХрд░реЗрдВ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ,
11
рдмрд░рд╛рдмрд░ред
рдПрдХ рдирдпрд╛ рдЖрдЗрдЯрдо рдбрд╛рд▓реЗрдВ
рдЖрдк рдПрдХ рдирдпрд╛ рд░рд┐рдХреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдпреЗ рдорд╛рди рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдЗрдП рдЕрдиреБрд░реЛрдз рдХреЛ рд╣реА рджреЗрдЦреЗрдВред
INSERT INTO pages VALUES (12, ' ', '', ' ', '0000-00-00 00:00:00', '0000-00-00 00:00:00') INSERT INTO pages_treepath (ancestor, descendant) SELECT ancestor, 12 FROM pages_treepath WHERE descendant = 4 UNION ALL SELECT 12, 12
рдкрд╣рд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде, рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реИ - рдпрд╣ рдирдП рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рдореНрдорд┐рд▓рди рд╣реИред рд▓реЗрдХрд┐рди рджреВрд╕рд░реЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдХреНрд░рдо рдореЗрдВ рдХреНрд░рдордмрджреНрдз рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддреЛ рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣рд╛рдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИред
рдирдИ рд░рд┐рдХреНрддрд┐ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рддрддреНрд╡реЛрдВ рдХреЗ рдмреАрдЪ рд╕рдВрдмрдВрдз SELECT ancestor, 12 FROM pages_treepath WHERE descendant = 4
рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рд╕реЗ, рд╣рдореЗрдВ рд▓рд┐рдВрдХ рдХреА рдирд┐рдореНрди рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИ:
-------------------------
| рдкреВрд░реНрд╡рдЬ | рд╡рдВрд╢рдЬ |
-------------------------
| 4 | 12 |
| 1 | 12 |
-------------------------
рд╕рдВрдпреЛрдЬрди рджреНрд╡рд╛рд░рд╛ рдкрд┐рдЫрд▓реА рдХреНрд╡реЗрд░реА рдореЗрдВ рдПрдХ рдФрд░ рдЬреЛрдбрд╝реЗрдВ:
SELECT ancestor, 12 FROM pages_treepath WHERE descendant = 4 UNION ALL SELECT 12, 12
рдкреЗрдЬ рдХреА рд▓рд┐рдВрдХ-рд▓рд┐рдВрдХ рдХреЛ рд╕реНрд╡рдпрдВ рд▓рд┐рдВрдХ рдХреА рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛:
-------------------------
| рдкреВрд░реНрд╡рдЬ | рд╡рдВрд╢рдЬ |
-------------------------
| 4 | 12 |
| 1 | 12 |
| 12 | 12 |
-------------------------
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣ SELECT рдХреНрд╡реЗрд░реА рдЖрдкрдХреЛ рдирдП рдкреЗрдЬ рдФрд░ рдЙрд╕рдХреЗ
рд╕рднреА рдкреВрд░реНрд╡рдЬреЛрдВ рдХреЗ рдмреАрдЪ рд▓рд┐рдВрдХ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИред
ancestor
рд╣рдореЗрд╢рд╛
ancestor
рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реЛрддрд╛ рд╣реИ,
descendant
рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реЛрддрд╛ рд╣реИред рдПрдХ INSERT рдХреНрд╡реЗрд░реА, рдЬреЛ рдкрд╣рд▓реЗ рд▓рд┐рдЦреА рдЧрдИ рдереА, рдкрд░рд┐рдгрд╛рдо рдХреЛ
pages_treepath
рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░рддреА рд╣реИред
рдЖрдЗрдЯрдо рд╣рдЯрд╛рдПрдВ
рдФрд░ рдЕрдм рд╣рдо рдПрдХ рд╡реЗрдм рдбрд┐рдЬрд╛рдЗрдирд░ рдХреА рд░рд┐рдХреНрддрд┐ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВрдЧреЗред
DELETE FROM pages_treepath WHERE descendant = 6 DELETE FROM pages WHERE id = 6
рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд╣рдо рдЙрди рд╕рднреА рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рд╡рдВрд╢рдЬ рдХрд╛ рд▓рд┐рдВрдХ 6 (рд╡реЗрдм тАЛтАЛрдбрд┐рдЬрд╝рд╛рдЗрдирд░ рдкреЗрдЬ) рд╣реИ, рдФрд░ рдлрд┐рд░ рд╣рдо рдкреЗрдЬ рдХреЛ рд╣реА рдбрд┐рд▓реАрдЯ рдХрд░ рджреЗрддреЗ рд╣реИрдВред
рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдкреЗрдбрд╝ рд╣рдЯрд╛рдПрдВ
рдЕрдЪрд╛рдирдХ, рдРрд╕рд╛ рд╣реБрдЖ рдХрд┐ рдХреБрдЫ рд╕рдордп рдХреЗ рд▓рд┐рдП рдЕрдм рдПрдмреАрд╕реА рдиреЗ рд╕рд╛рдЗрдЯреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ред рд╣рдореЗрдВ рдЗрд╕реА рдЙрдкрдзрд╛рд░рд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ:
DELETE FROM pages WHERE id IN ( SELECT descendant FROM ( SELECT descendant FROM pages p JOIN pages_treepath t ON p.id = t.descendant WHERE t.ancestor = 7 ) AS tmptable ) DELETE FROM pages_treepath WHERE descendant IN ( SELECT descendant FROM ( SELECT descendant FROM pages_treepath WHERE ancestor = 7 ) AS tmptable )
рдкрд┐рдЫрд▓реЗ рдЕрдиреБрд░реЛрдз рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдХреБрдЫ рд╣рдж рддрдХ рдЬрдЯрд┐рд▓ рд╣реИ рдФрд░ рдкреГрд╖реНрда рд╕реНрд╡рдпрдВ рдкрд╣рд▓реЗ рд╣рдЯрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рдЙрдирдХреЗ рдмреАрдЪ рдХрд╛ рдХрдиреЗрдХреНрд╢рди (рдЪреВрдВрдХрд┐ рдмрд╛рдж рд╡рд╛рд▓реЗ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рдкрд╣рд▓реЗ рд╣рдЯрд╛рдиреЗ рдХреЗ рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ)ред
рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИ рдХрд┐ MySQL рдХреНрд╡реЗрд░реА рдХреЛ
WHERE
рд╕рд╛рде рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рд╣реА рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ
SELECT
рдЪрдпрди рд╣реЛрддрд╛ рд╣реИред MySQL рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ SELECT рдХреНрд╡реЗрд░реАрдЬрд╝ рдбрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рд╣рдорд╛рд░реЗ рдкреНрд░рд╢реНрди рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдВрдЧреЗ:
DELETE FROM pages WHERE id IN ( SELECT descendant FROM pages p JOIN pages_treepath t ON p.id = t.descendant WHERE t.ancestor = 7 ) DELETE FROM pages_treepath WHERE descendant IN ( SELECT descendant FROM pages_treepath WHERE ancestor = 7 )
рдпрджрд┐ рдЖрдк рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ
pages
рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ DELETE рдХреНрд╡реЗрд░реА рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб SELECT рдХреНрд╡реЗрд░реА рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдкрд╛рдПрдВрдЧреЗ рдХрд┐ рд╣рдордиреЗ рдкрд╣рд▓реЗ рд╣реА рдПрдХ рд╕рдорд╛рди рдХреНрд╡реЗрд░реА рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд┐рдпрд╛ рд╣реИред рдпрд╣ рдХреЗрд╡рд▓ рдкреГрд╖реНрда рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдореЗрдВ рдкрд┐рдЫрд▓реЗ рдПрдХ рд╕реЗ рднрд┐рдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЪрдпрди рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдореЗрдВ рд╕рд╛рдЗрдЯ рд╕реЗрдХреНрд╢рди рдХреЗ рд╕рднреА рдЪрд╛рдЗрд▓реНрдб рдкреЗрдЬ рдорд┐рд▓рддреЗ рд╣реИрдВ (рд╕реЗрдХреНрд╢рди рд╕рд╣рд┐рдд), рдФрд░ рдлрд┐рд░ рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдП рдЧрдП рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рд╕рднреА рдкреЗрдЬреЛрдВ рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВред
рдкреГрд╖реНрдареЛрдВ рдХреЛ рд╣рдЯрд╛рдП рдЬрд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдпрд╣ рдЙрди рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд░рд╣рддрд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡рдВрд╢рдЬ
descendant
рд╕рднреА рд▓рд┐рдВрдХ
descendant
, рдЬрд╣рд╛рдВ рдкреВрд░реНрд╡рдЬ рдХрд╛ рд▓рд┐рдВрдХ рд╕рд╛рдЗрдЯ рдкреЗрдЬ рдХреЗ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ рдХреЗ рдмрд░рд╛рдмрд░ рд╣реИред
рдШреЛрдВрд╕рд▓реЗ рдХрд╛ рд╕реНрддрд░
рдЖрдк рд╕рдВрдмрдВрдз рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдПрдХ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рддрддреНрд╡реЛрдВ рдХреЗ рдШреЛрдВрд╕рд▓реЗ рдХреЗ рд╕реНрддрд░ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрд╣ рдХреНрд╖реЗрддреНрд░ рдЖрдкрдХреЛ рддрддреНрдХрд╛рд▓ рдкреВрд░реНрд╡рдЬреЛрдВ рдпрд╛ рддрддреНрдХрд╛рд▓ рд╡рдВрд╢рдЬреЛрдВ рдХреЗ рдЪрдпрди рдХреЗ рд▓рд┐рдП рд╕рд░рд▓ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдЧрд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
SELECT * FROM pages p JOIN pages_treepath t ON (p.id = t.descendant) WHERE t.ancestor = 4 AND t.level = 2
рдбреАрдмреА рдЯреЗрдмрд▓ рд╕реНрдХреАрдорд╛рдЬрд╛рд░реА рд░рдЦрд╛ рдЬрд╛рдПред