下面是我的數據庫表結構SQL INNER JOIN時的具體
ApplicationModule
- 身份證,鑰匙,姓名
ApplicationFeature
- 身份證,的moduleId,重點,名稱
每個特徵映射與模塊。此外,我只需將一些功能分配給租戶。
TenantXFeature
- TenantId,FEATUREID
此外,當我創建一個角色,我繪製一些功能從特定於租戶的(TenantXFeature)
RoleXFeature
採摘 - 角色ID,FEATUREID
現在我需要一個查詢如果RoleXFeature具有該功能的條目,則加載所有租戶特定功能以及選擇(是/否)。
SELECT AM.[Key] AS ModuleKey
,AM.Name AS ModuleName
,AF.[Key] AS FeatureKey
,AF.Name FeatureName
,RF.FeatureId
,CASE WHEN RF.FeatureId IS NULL THEN 0 ELSE 1 END AS Selected
FROM TenantXFeature TF
INNER JOIN ApplicationFeature AF
ON TF.FeatureId = AF.Id
INNER JOIN ApplicationModule AM
ON AF.ModuleId = AM.Id
LEFT JOIN RoleXFeature RF
ON RF.FeatureId = AF.Id AND RF.RoleIid = 1
WHERE TF.TenantId = 1
這裏RF.FeatureId
總是顯示NULL即使我在RoleXFeature中有一個映射。
請建議/幫我解決這個問題。
你有一張表來將租戶映射到角色? –
@MarkBannister,我沒有一個單獨的映射表,但在ApplicationRole表中我們有一列'TenantId'表示角色是特定於Tenant的。該列中的「NULL」值指定它對所有租戶都是通用的。 – Billa