Итак: У меня есть следующай таблица:
CREATE TABLE COURSES (
LEVELCODE INTEGER NOT NULL,
"LEVEL" INTEGER,
PARENTLEVELCODE INTEGER,
LEVELNAME VARCHAR(2000),
LEVELDESC VARCHAR(4000),
LEVELCONTENT VARCHAR(4000),
LEVELNUM INTEGER,
LEVELFILE VARCHAR(1000),
LEVELANCHORS VARCHAR(2000)
);
Вот с такими ключами:
ALTER TABLE COURSES ADD CONSTRAINT PK_COURSES_1 PRIMARY KEY (LEVELCODE);
ALTER TABLE COURSES ADD CONSTRAINT FK_COURSES_1 FOREIGN KEY (PARENTLEVELCODE) REFERENCES COURSES (LEVELCODE) ON DELETE CASCADE ON UPDATE CASCADE;
Т.е. PARENTLEVELCODE - внешний, и ведет на поле LEVELCODE в этой же таблице.
Чтобы это заработало, мне пришлось добавить одну строку в таблицу, где LEVELCODE = PARENTLEVELCODE = 0
На хабре есть вот такая картинка:

Вот как бы мне вытащить название всех серверов из России (а если ставить параллель с моей таблицей - то как мне вытащить все LEVELFILE, которые находятся "ниже" по иерархии)?