以下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;
Run Code Online (Sandbox Code Playgroud)
然而,等效的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;
Run Code Online (Sandbox Code Playgroud)
我可以不在删除语句中使用连接吗?
如果不是我如何执行上述删除?
编辑
表tblKeyPointLinks是一个中间表,用于在tblKPI和tblKeyPoints之间建立多对多关系.因此,SELECT语句会多次返回tblKPI中的一些条目.这是为什么DELETE语句可能有问题?解决这个问题的最佳方法是什么?
是的,您可以在删除语句中加入:
DELETE k 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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9957 次 |
| 最近记录: |