2015-05-15 5 views
-2

У меня есть следующая таблица Структура. (Я новичок в SQL Lite)Рекурсивный запрос CTE в SQL Lite

create table Relations 
(
Code int, 
ParentCode int , 
fname text 
) 
GO 
insert into Relations values(1,null,'A'); 
insert into Relations values(2,null,'B'); 
insert into Relations values(3,2,'C'); 
insert into Relations values(4,3,'D'); 

Я хочу, чтобы получить первоначальный родителю Кодекса = 4: т.е. значения 2 Null Аргументы B

Я не могу понять, как написать рекурсивный запрос в sqllite. Спасибо в Advance ..

+0

Какая часть [документации] (http://www.sqlite.org/lang_with.html) вы не понимаете? –

ответ

0

Был вопрос версии .. Этот запрос не работал & получил синтаксис Error. я модернизировал от 3.7.17 до версии 3.8.7.4 & он работал ..

WITH RECURSIVE 
    works(Code,Parent) AS (
    Select Code,ParentCode from Relations a where a.Code=4 
    UNION 
    SELECT Relations.Code, Relations.ParentCode FROM Relations , works 
    WHERE Relations.Code=works.Parent 
) 
SELECT * FROM works where Parent is null 
Смежные вопросы