2013-12-07 52 views
0


有人可以告訴我如何獲取用戶的記錄,它是role_desc。以下是我的表格。在用戶表中使用角色id獲取角色的T-SQL查詢

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 

,並在角色表我有如下記錄

1  Admin  
2  Supervisior 

我想得到以下結論翼結果

Zeb  Supervisior 

不會導致像下面

Zeb  Admin 
Zeb  Supervisior 

請給我你的建議..
在此先感謝

+1

我不覺得有什麼不對您的查詢。結果的一個原因可能是有兩個用戶名稱相同,一個是admin和另一個supervisitor。 – bjorsig

+1

這個樣本數據給你的結果是不可能的:http://sqlfiddle.com/#!3/277a4/2。唯一的方法是你有兩個用戶稱爲Zeb。一個作爲主管,一個作爲管理員 –

回答

2

根據與SqlFiddle創建表和數據看來,你的查詢很好。

它看起來像你有一個用戶具有不同的角色相同的名稱,因此你看到你看到的結果。

嘗試運行此查詢,以確認:

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

你可能想查詢離用戶ID的,因爲你知道這將是獨一無二的。

1

您可以使用以下查詢來檢查相同的用戶名(即使用戶標識不同),並分配多個角色。

SELECT COUNT(名稱),從向tblUsers組名由名稱有COUNT(名稱)> 1