我有一张Users
桌子和一张Groups
桌子。用户可以通过“UserInGroup”表在多个组中,组可以有一个“GroupTypeId”。
[User]
--------------
Id | Name
1 | Bob
2 | James
[UserInGroup]
-----------------
UserId | GroupId
1 1
1 2
[Group]
Id | Name | TypeId
------------------------
1 | Directors | 1
2 | IT | 1
3 | London | 2
我想创建一个查询以返回例如同时位于“Directors”和“London”(而不是“Directors”或“London”)的用户。但是,我只想 AND 不同“类型”的组,我想 OR 相同类型的组。我可以为每个组类型创建一个单独的表,但我不能,因为它们是动态创建的。
理想情况下,我希望能够查询“Directors”或“IT”和“London”中的用户。
这样做最有效的方法是什么?