我有两张桌子。文件夹和FolderPermission 有些文件夹由于某种原因没有权限,所以我试图根据模型文件夹ID = 1207
将权限分配给没有权限的文件夹我有以下查询,但实际上并不起作用。我虽然很亲密。其中一个问题是新插入的folderID必须不存在于数据库表FolderPermission中,因为它不允许重复的条目。因此,必须根据不存在的记录输入FolderID。这是我的代码:
INSERT INTO FolderPermission (FolderID, PermissionID,AllowAccess,RoleID,UserID,CreatedByUserID,CreatedOnDate,LastModifiedByUserID,LastModifiedOnDate)
SELECT FolderID, PermissionID,AllowAccess,RoleID,UserID,CreatedByUserID,CreatedOnDate,LastModifiedByUserID,LastModifiedOnDate
FROM FolderPermission
WHERE FolderID=1207
SELECT FolderID
FROM Folders
WHERE FolderID NOT IN (SELECT DISTINCT FolderID
FROM FolderPermission )
答案 0 :(得分:1)
您可以使用cross join
从模型到ID列表将两个查询合并为一个:
INSERT INTO FolderPermission (FolderID, PermissionID, AllowAccess, RoleID, UserID,
CreatedByUserID, CreatedOnDate, LastModifiedByUserID,
LastModifiedOnDate
)
SELECT f.FolderID, PermissionID, AllowAccess, RoleID,UserID, CreatedByUserID, CreatedOnDate,
LastModifiedByUserID, LastModifiedOnDate
FROM FolderPermission fp cross join
(SELECT FolderID
FROM Folders
WHERE FolderID NOT IN (SELECT DISTINCT FolderID
FROM FolderPermission
)
) f
WHERE fp.FolderID = 1207;