我想知道这是为什么代码不会返回任何结果查询分隔列值
SELECT A.PermissionGroupID, A.ApplicationID, CONVERT(nvarchar(5),A.PermissionID) AS Permission, A.PermissionName, B.PermissionGroupName, C.ApplicationName
FROM Permission AS A
JOIN PermissionGroup AS B ON A.PermissionGroupID = B.PermissionGroupID
LEFT JOIN Application AS C ON A.ApplicationID = C.ApplicationID
WHERE (A.Active = 1)
AND (CONVERT(nvarchar(2),A.PermissionID) IN (SELECT Permissions
FROM UserPermissions
WHERE UserID = 1))
但是这一次是工作
SELECT A.PermissionGroupID, A.ApplicationID, CONVERT(nvarchar(5),A.PermissionID) AS Permission, A.PermissionName, B.PermissionGroupName, C.ApplicationName
FROM Permission AS A
JOIN PermissionGroup AS B ON A.PermissionGroupID = B.PermissionGroupID
LEFT JOIN Application AS C ON A.ApplicationID = C.ApplicationID
WHERE (A.Active = 1)
AND (CONVERT(nvarchar(2), A.PermissionID) IN ('5','6','7','8'))
这里是我的权限表的内容
Permission
--------------------------------
Permission Permission Application Permission
ID Group ID Name
4 1 1 VISA_APPLICATION_DELETE
5 1 1 VISA_APPLICATION_PRINT
6 4 10 APPLICATION_ADD
7 4 10 APPLICATION_EDIT
8 4 10 APPLICATION_DELETE
9 4 10 APPLICATION_VIEW
这里是我的UserPermissions表
的内容UserPermissions
--------------------------
UserPermission UserID Permissions
ID
2 1 5,6,7,8 -> I tried to change it manually to this format ('5','6','7','8') but to no avail.
什么是这些表中? – Matthew
您能否举例说明'UserPermissions'表的'Permissions'列中存储的内容(何时为空,一个值或多个值)? – van
代码:越容易阅读,其他人就越有可能提供帮助。 –