Users(Id, Name)
UserClaims(Id, UserId, Type, Value)
UserLogins(ProviderName, ProviderKey, UserId)
UserRoles(UserId, RoleId)
Roles(Id, Name)
我如何選擇與所有相關實體的名字在一個單一的查詢的用戶?
Users(Id, Name)
UserClaims(Id, UserId, Type, Value)
UserLogins(ProviderName, ProviderKey, UserId)
UserRoles(UserId, RoleId)
Roles(Id, Name)
我如何選擇與所有相關實體的名字在一個單一的查詢的用戶?
這聽起來像你只是想加入相關的表,如果是的話,也許這樣的事情是你在找什麼:
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...
這很好,如果所有相關表至少有每個用戶一個記錄。如果不是這樣,請在需要的地方使用LEFT JOIN。 – Pred
是的,我需要LEFT JOIN – user960567
@Pred確實。在適當的情況下,查詢應該很容易適應左連接。 – jpw
請說明您的具體問題或添加額外的細節,突顯正是你需要。正如目前所寫,很難確切地說出你在問什麼。請參閱「如何問問」頁面以獲取有關澄清此問題的幫助。 – Kermit
有人會認爲用3k + rep的用戶會知道如何正確格式化問題... – jpw
我需要一個select查詢,其中name = @name但加入所有相關實體 – user960567