может кто объяснить такой запрос:

MaximZ
Дата: 02.11.2004 19:12:08
SELECT P2.emp, COUNT(*) AS level
FROM Personnel AS P1, Personnel AS P2
WHERE P2.lft BETWEEN P1.lft AS P2
GROUP BY P2.emp;

Это списано из стандартной статьи опиания работы с деревьями.

http://doc.woweb.ru/index.htm/id/1029882762/d/2

Я что то не пойму о каком самообъединении в предикате BETWEEN там говорится. В любом случае, я попробовал это в постгресе, не пошло. Правильнее написать было бы:

SELECT P2.emp, COUNT(*) AS level
FROM Personnel AS P1, Personnel AS P2
WHERE P2.lft BETWEEN P1.lft AND P1.rgt
GROUP BY P2.emp;

Но все-таки хочется поняь чего автор имел ввиду.
LeXa NalBat
Дата: 09.11.2004 11:12:26
По-моему, налицо опечатка, и вы ее правильно исправили. Тут этой опечатки нет.