删除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>上没有匹配项。