2014-04-15 23 views
-3

我已經在一個查詢中選擇用戶名稱和所有相關實體?

Users(Id, Name) 
UserClaims(Id, UserId, Type, Value) 
UserLogins(ProviderName, ProviderKey, UserId) 
UserRoles(UserId, RoleId) 
Roles(Id, Name) 

我如何選擇與所有相關實體的名字在一個單一的查詢的用戶?

+2

請說明您的具體問題或添加額外的細節,突顯正是你需要。正如目前所寫,很難確切地說出你在問什麼。請參閱「如何問問」頁面以獲取有關澄清此問題的幫助。 – Kermit

+1

有人會認爲用3k + rep的用戶會知道如何正確格式化問題... – jpw

+0

我需要一個select查詢,其中name = @name但加入所有相關實體 – user960567

回答

1

這聽起來像你只是想加入相關的表,如果是的話,也許這樣的事情是你在找什麼:

SELECT * 
FROM Users U 
INNER JOIN UserClaims UC ON U.Id = UC.UserId 
INNER JOIN UserLogins UL ON U.Id = UL.UserId 
INNER JOIN UserRoles UR ON U.Id = UR.UserId 
INNER JOIN Roles R ON R.Id = UR.RoleId 
WHERE U.Name = 'name' -- or @name or whatever way you pass the variable... 
+1

這很好,如果所有相關表至少有每個用戶一個記錄。如果不是這樣,請在需要的地方使用LEFT JOIN。 – Pred

+0

是的,我需要LEFT JOIN – user960567

+0

@Pred確實。在適當的情況下,查詢應該很容易適應左連接。 – jpw

相關問題