我的 UserMgr 表中有以下数据。
ID | UserID | MgrDbID | DeptID
1 | 111 | 2 | 1
2 | 112 | NULL | 1
3 | 113 | 5 | 1
4 | 113 | 6 | 2
5 | 114 | NULL | 1
6 | 114 | NULL | 2
7 | 115 | 5 | 1
8 | 115 | 6 | 2
9 | 116 | 10 | 1
10 | 117 | NULL | 1
上表中包含了包括管理员在内的所有用户。 MgrDbID 指 ID 列。一个用户可能有多个记录,在这种情况下 通过DeptID可以得到对应经理的多条记录。对于管理器,MgrDbID 为 NULL。
我需要如下结果集,其中包含相应 MgrDbID 的不同 UserID 和 UserID,如下所示(对于不是管理员的用户)。任何人都可以帮忙查询以下内容吗?
UserID | MgrID
111 | 112
113 | 114
115 | 114
116 | 117
最佳答案
select u1.userid, min(u2.userid) as MgrID
from UserMgr u1
join UserMgr u2 on u1.UserMgrID = u2.ID
group by u1.userid
关于sql - 选择具有相关数据的不同行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25694502/