(1:N)次の関係を考慮してください。
[entity: user] <------ rid key ------> [entity: rid]。
両方のテーブルのデータを次のように考えます。
select * from user;
user-id rid-key
a-basa a
b-basa b
a.a-basa a.a
a.b-basa a.b
a.a.a-basa a.a.a
a.a.b-basa a.a.b
a.b.a-basa a.b.a
a.b.b-basa a.b.b
a.b.b.a-basa a.b.b.a
a.b.b.b-basa a.b.b.b
select * from rid;
rid-key parent-rid enabled
a null true
b null true
a.a a true
a.b a false
a.a.a a.a true
a.b.a a.b true
a.b.b a.b true
a.b.b.a a.b.b true
......
n rows
を入力する単一のクエリ(ストアドプロシージャではない)を設計する必要がuser-idあり、次の事実が考慮されます。
ユーザーにへのアクセス権が与えられている場合は、与えられたのへridのアクセスも可能です-それ自体が有効になっていますparent ridridrid(enabled = true).
これは、に到達するまで続く必要がありroot ridます。parent ridプロパティはnullです。
'a.b.b.a-basa'上記の例では、ユーザーがアクセスできるridのリストは次のようになります。:
a.b.b.a
a.b.b
a.b
とのためにa.a.a-basa:
a.a.a
a.a
a
単一のクエリを使用してこのリストを取得できますか?どのSQLベンダーでも問題ありません。