好,所以我有一张桌子Assignment
:
[UserId]
[GroupId]
[UpdatedBy]
[UpdatedAt]
此外,我还有一个用于从特定组返回用户的功能:
select UserId
from dbo.GetGroupUsers() ggu
where ggu.GroupId = ?
在Assignment
中,我要检查列出了我们的用户的所有组,然后从这些组中选择所有用户,没有重复。
我该如何实现?
例如,用户“ test1”同时属于另一个组,其中id = 2,并且我希望从例如第2组和第4组中选择所有用户(因为在此示例中,test1如此说),而记录没有重复
答案 0 :(得分:1)
来自一个UserId(例如UserId 10)的所有组:
select GroupId from Assignment where UserId = 10
从这些组中选择所有用户(无重复):
select distinct UserId
from dbo.GetGroupUsers() ggu
where ggu.GroupId in (select GroupId from Assignment where UserId = 10)
我希望这就是你想要的。
答案 1 :(得分:0)
内部自我连接应该为您提供所需用户的ID。将结果与您的用户表(您未发布)关联,以获取有关这些用户的其他信息。
SELECT DISTINCT
a2.userid
FROM assignment a1
INNER JOIN assignment a2
ON a2.groupid = a1.groupid
WHERE a1.userid = ?;
(用您要开始使用的用户ID替换?
。)
答案 2 :(得分:0)
假设您输入的是用户ID:test1,并假设您只是在查看一张表(分配)
System.out.printf("The energy is %.1f Joules", energy);
请告诉我这是否有帮助