Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从sql表中删除在另一个具有多个联接的表中找不到值的行_Sql_Join_Exists_Delete Row - Fatal编程技术网

从sql表中删除在另一个具有多个联接的表中找不到值的行

从sql表中删除在另一个具有多个联接的表中找不到值的行,sql,join,exists,delete-row,Sql,Join,Exists,Delete Row,我有一个返回所需数据的查询。我想做的是删除该数据,但是当我更改Select DQ.*以从DQ中删除时,会出现一个错误,表明 “。。。不可更新,因为修改会影响多个基表的 如果在tbaccess_CompanyModule表中找不到相应的模块记录,我需要从tbaccess_groupPermission表中删除条目 WITH DQ AS ( SELECT GP.* FROM tbaccess_groupPermission GP JOIN tbaccess_groups G ON GP.GroupI

我有一个返回所需数据的查询。我想做的是删除该数据,但是当我更改Select DQ.*以从DQ中删除时,会出现一个错误,表明

“。。。不可更新,因为修改会影响多个基表的

如果在tbaccess_CompanyModule表中找不到相应的模块记录,我需要从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

为什么不将
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) 
) 

好的,我以前试过,但按照建议再试一次——结果成功了!谢谢!!'从tbaccess\u GroupPermission中删除ID在'