SQL通过不同的变量选择多个记录

时间:2018-08-23 20:27:43

标签: sql join records

好,所以我有一张桌子Assignment

[UserId]
[GroupId]
[UpdatedBy]
[UpdatedAt]

此外,我还有一个用于从特定组返回用户的功能:

select UserId 
from dbo.GetGroupUsers() ggu 
where ggu.GroupId = ?

Assignment中,我要检查列出了我们的用户的所有组,然后从这些组中选择所有用户,没有重复。

我该如何实现?

编辑: 样本输出形式选择groupid = 4 sample_output

例如,用户“ test1”同时属于另一个组,其中id = 2,并且我希望从例如第2组和第4组中选择所有用户(因为在此示例中,test1如此说),而记录没有重复

3 个答案:

答案 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);

请告诉我这是否有帮助