【发布时间】:2021-02-17 03:39:58
【问题描述】:
我的任务是根据两个表之间的条件删除一个表中的行(我加入多个列,因为没有 PRIMARY 或 UNIQUE KEY:
DELETE rf
FROM #tempTable rf
LEFT JOIN #tempTableInc rfi
ON rf.ID = rfi.ID
AND rf.Code = rfi.Code
AND rf.Type = rfi.Type
AND rf.Year = rfi.Year
WHERE rfi.Value != rf.Value
如果我只写这段代码:
SELECTrf.*, rfi.Value rfi
FROM #tempTable rf
LEFT JOIN #tempTableInc rfi
ON rf.ID = rfi.ID
AND rf.Code = rfi.Code
AND rf.Type = rfi.Type
AND rf.Year = rfi.Year
WHERE rfi.Value != rf.Value
例如,我收到 30 条记录。当我在DELETE 语句中写它时,我只删除了 26 条记录。造成这种差异的原因可能是什么?
【问题讨论】:
标签: sql sql-server tsql join sql-delete