postgresqlで、ツリー構造を持つテーブルにて、指定したIDを親として、親含めた子IDを再帰的に取得するSQL。
uidがユニークID、pidが親ID。
WITH RECURSIVE r AS
(SELECT * FROM Tree WHERE uid = '123'
UNION ALL
SELECT Tree.* FROM Tree, r WHERE Tree.pid = r.uid)
SELECT * FROM r ORDER BY uid;
※WITH RECURSIVEはpostgres8.4から。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。