Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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
删除MySQL子查询_Mysql_Sql_Sql Delete - Fatal编程技术网

删除MySQL子查询

删除MySQL子查询,mysql,sql,sql-delete,Mysql,Sql,Sql Delete,我有一个生成结果的查询: SELECT urenID FROM uren WHERE uren.urenDossierID IN (SELECT dossierID FROM dossier WHERE dossierKlantID NOT IN (SELECT klantID from klant)) 现在我想删除生成该查询的所有记录。现在是我的问题;怎么做?试试这个 DELETE FROM uren WHERE urenID in ( SELECT urenID FROM uren

我有一个生成结果的查询:

SELECT urenID FROM uren WHERE uren.urenDossierID IN (SELECT dossierID FROM dossier WHERE dossierKlantID NOT IN (SELECT klantID from klant))
现在我想删除生成该查询的所有记录。现在是我的问题;怎么做?

试试这个

DELETE FROM uren WHERE urenID in (
   SELECT urenID FROM uren WHERE uren.urenDossierID IN (SELECT dossierID FROM dossier WHERE dossierKlantID NOT IN (SELECT klantID from klant)))
试试这个

DELETE FROM uren WHERE urenID in (
   SELECT urenID FROM uren WHERE uren.urenDossierID IN (SELECT dossierID FROM dossier WHERE dossierKlantID NOT IN (SELECT klantID from klant)))

只需通过
DELETE
替换
SELECT urenID

DELETE FROM uren WHERE uren.urenDossierID IN (SELECT dossierID FROM dossier WHERE dossierKlantID NOT IN (SELECT klantID from klant))

只需通过
DELETE
替换
SELECT urenID

DELETE FROM uren WHERE uren.urenDossierID IN (SELECT dossierID FROM dossier WHERE dossierKlantID NOT IN (SELECT klantID from klant))

我坚信
JOIN
IN

DELETE  a
FROM    uren a
        LEFT JOIN dossier b
            ON a.urenDossierID = b.dossierID
        LEFT JOIN klant c
            ON b.dossierKlantID = c.klantID
WHERE   b.dossierID IS NOT NULL AND
        c.klantID IS NULL

我坚信
JOIN
IN

DELETE  a
FROM    uren a
        LEFT JOIN dossier b
            ON a.urenDossierID = b.dossierID
        LEFT JOIN klant c
            ON b.dossierKlantID = c.klantID
WHERE   b.dossierID IS NOT NULL AND
        c.klantID IS NULL

然后我得到了这个错误;[Err]1093-无法指定从第条中更新的目标表“uren”,因为我收到此错误;[呃]1093-您不能为从子句中更新指定目标表“uren”删除位于uren表中的所有要删除的元素,或者您希望同时删除档案和klantID中的数据?是否所有要删除的元素都位于uren表中,或者您希望同时删除档案和klantID中的数据?@ypercube如果我在a、 urenDossierID=b.dossierID,如果
uren
的所有记录在
dossier
上没有匹配项,那么它的所有记录都将被删除@ypercube如果我在a.urenDossierID=b.dossierID上使用
内部连接档案b,那么
uren
的所有记录都将被删除,如果它在
dossier>上没有匹配项。