(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 rid
rid
rid
(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ベンダーでも問題ありません。