以下 SQL 语句在我的数据库上执行良好:
SELECT * FROM tblKPIs AS k
INNER JOIN tblKeyPointLinks AS l ON k.KPIID = l.KPIID
INNER JOIN tblKeyPoints AS p ON p.KptID = l.KptID
INNER JOIN tblHistory AS h ON h.HistoryID = p.HistoryID
WHERE h.CaseNo = 50043;
然而,等效的 Delete 语句给出了错误“靠近 AS 的语法”?
DELETE FROM tblKPIs AS k
INNER JOIN tblKeyPointLinks AS l ON k.KPIID = l.KPIID
INNER JOIN tblKeyPoints AS p ON p.KptID = l.KptID
INNER JOIN tblHistory AS h ON h.HistoryID = p.HistoryID
WHERE h.CaseNo = 50043;
我不能在删除语句中使用联接吗?
如果不是,我该如何执行上述删除?
编辑
表 tblKeyPointLinks 是在 tblKPI 和 tblKeyPoints 之间建立多对多关系的中间表。因此,SELECT 语句多次返回 tblKPI 中的某些条目。这就是 DELETE 语句可能有问题的原因吗?解决此问题的最佳方法是什么?