使用用户表中的角色ID获取角色的T-SQL查询

时间:2013-12-07 17:45:13

标签: sql-server inner-join


有人可以告诉我如何获得用户记录和它的role_desc。以下是我的表格。

tblUSERS:   UserID PK
            Name
            RoleID FK

tblROLES:   RoleID PK
            Role_Desc

我的查询如下

select Name,Role_Desc from tblUSERS
       inner join tblROLES on tblUSERS.RoleID = tblRoles.RoleID;

假设我在tblUSER中记录如下

1       Zeb      2

在Roles表格中我有以下记录

1       Admin    
2       Supervisior

我想得到以下结果

Zeb     Supervisior

不符合以下结果

Zeb     Admin
Zeb     Supervisior

请给我你的建议..
提前谢谢

2 个答案:

答案 0 :(得分:2)

根据使用SqlFiddle创建表格和数据,您的查询似乎没问题。

看起来你有一个具有不同角色的同名用户,因此你看到了你所看到的结果。

尝试运行此查询以确认:

select UserID,Name,Role_Desc from tblUSERS
   inner join tblROLES on tblUSERS.RoleID = tblRoles.RoleID;

您可能想要查询UserID,因为您知道这将是唯一的。

答案 1 :(得分:1)

您可以使用以下查询检查相同的用户名(即使用户ID不同),也可以分配多个角色。

从名称中选择COUNT(名称),来自tblUSERS组的名称有COUNT(名称)> 1