0

目的のデータを返す次のクエリがあります。私がやりたいのはそのデータを削除することですが、Select DQ.* を DELETE FROM DQ に変更すると、それを示すエラーが表示されます。

「...変更は複数のベーステーブルに影響するため、更新できません」

適切なモジュール レコードが tbaccess_companyModules テーブルに見つからない場合、tbaccess_groupPermission テーブルからエントリを削除する必要があります。

WITH DQ AS
(
SELECT GP.* FROM tbaccess_groupPermission GP
JOIN tbaccess_groups G ON GP.GroupID = G.ID
WHERE G.CompanyID=6
AND GP.RoleName NOT IN
(
select Distinct(R.RoleName)
FROM tbAccess_Roles R
INNER JOIN tbAccess_CompanyModules C on R.ModuleID = C.ModuleID
WHERE C.CompanyID = 6) 
) 
SELECT * FROM DQ
4

1 に答える 1

0

WITHを使用するようにステートメントを変更してみませんか?IN

何かのようなもの

WITH DQ AS
(
SELECT GP.* FROM tbaccess_groupPermission GP
WHERE GP.GroupID IN (SELECT G.ID FROM tbaccess_groups G WHERE G.CompanyID=6)
AND GP.RoleName NOT IN
(
select Distinct(R.RoleName)
FROM tbAccess_Roles R
INNER JOIN tbAccess_CompanyModules C on R.ModuleID = C.ModuleID
WHERE C.CompanyID = 6) 
) 
于 2013-09-02T17:34:01.133 に答える