You mean like this: create table parent ( id integer primary key, data text not null collate nocase unique, child_id integer not null references child ); create index parent_child_id on parent (child_id);
create table child ( id integer primary key, recurse_id integer references child, data text not null collate nocase ); create index child_recurse_id on child (recurse_id); insert into child values ( 1, NULL, 'End of Child Chain 1'); insert into child values ( 5, 1, 'Nx2 of Child Chain 1'); insert into child values (14, 5, 'Nx1 of Child Chain 1'); insert into child values ( 3, 14, 'Top of Child Chain 1'); insert into parent values (1, 'Parent of Child Chain 1', 3); insert into child values (16, NULL, 'End of Child Chain 2'); insert into child values ( 4, 16, 'Nx2 of Child Chain 2'); insert into child values ( 7, 4, 'Nx1 of Child Chain 2'); insert into child values ( 2, 7, 'Top of Child Chain 2'); insert into parent values (2, 'Parent of Child Chain 2', 2); select *, (with a as ( select * from child where id=parent.child_id union all select child.* from a, child where a.recurse_id=child.id ) select data from a where a.data like 'Nx2%') as childdata from parent; SQLite version 3.30.0 2019-09-10 13:20:22 Enter ".help" for usage hints. Connected to a transient in-memory database. Use ".open FILENAME" to reopen on a persistent database. sqlite> .mode col sqlite> .head on sqlite> .read test.sql id data child_id childdata ---------- ----------------------- ---------- -------------------- 1 Parent of Child Chain 1 3 Nx2 of Child Chain 1 2 Parent of Child Chain 2 2 Nx2 of Child Chain 2 sqlite> -- The fact that there's a Highway to Hell but only a Stairway to Heaven says a lot about anticipated traffic volume. >-----Original Message----- >From: sqlite-users <sqlite-users-boun...@mailinglists.sqlite.org> On Behalf >Of Randall Smith >Sent: Tuesday, 10 September, 2019 18:45 >To: sqlite-users@mailinglists.sqlite.org >Cc: Randall Smith <rsm...@qti.qualcomm.com> >Subject: [sqlite] Recursive CTE as correlated subquery? > >I have an application for doing recursive data lookup as part of a larger >query. For example, for each node in a tree, are there any children of the >node that have some property? > >In non-recursive settings, one would use a conventional correlated subquery >that references the node id from the outer query to look up things about >the node in the subquery. But with recursive CTEs there does not seem to be >any way, syntactically or otherwise, to "parameterize" the starting point >for the recursive operation. > >Is this just something you can't do in SQLite or SQL in general? Or am I >missing something? > >Thanks for any suggestions or expertise. > >Randall. > > >_______________________________________________ >sqlite-users mailing list >sqlite-users@mailinglists.sqlite.org >http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users