を使用して SQL ステートメントを作成しようとしましたWITH
が、うまくいきません。
次の表を取得しました。
グループ (ID、名前)
1, 'My app'
2, 'Local admins'
3, 'Global admins'
ユーザー (1, 名前)
1, 'Arne'
GroupOwners (GroupId、OwnerType、OwnerId)
1, 'Group', 2
GroupMembers (GroupId、MemberType、MemberId)
2, 'Group', 3
3, 'User', 1
Arne
の所有者であるすべてのグループを見つけようとしています。この場合はMy App
. しかし、問題はそれLocal Admins
が所有者として設定されていることです。のメンバーGlobal admins
ですLocal admins
。そしてArne
ついにメンバーにGlobal admins
。
ダイヤモンドは気にしないでください、それらは間違っています
入れ子はグループごとに異なります。(ユーザーを直接 GroupOwners に持つものもあれば、ユーザーをメンバーとして持つ 1 つのグループを持つものもあります)
SQL文のマザー1つで解決できますか?追加の制約: Groups
/Users
はシステムの他の場所で使用されます。