我正在尝试使用左联接从我的sql server studio中删除,我的问题是如何获取作为左联接的一部分而被删除的ID列表。我还想比较两个表a中的总和之间的差异:
ID NAME LOC SUM
4 abc NY 500
5 seq CA 100
15 juv TX 120
表b:
ID NAME LOC SUM INFO
5 seq CA 90 x
18 jay AL 94 x
15 juv CL 190 x
我想得到作为左连接的一部分被删除的行的数量,并且我想看到总和的差异
DELETE MYDB
FROM MYDB.A
LEFT JOIN MYDB.B
ON A.ID=B.ID
WHERE A.ID=B.ID
1条答案
按热度按时间kmpatx3s1#
不清楚你为什么要使用
LEFT JOIN
对于JOIN
. 你的WHERE
子句(在其他方面是多余的)正在将外部联接转换为内部联接。我建议使用
exists
:对于计数,可以使用:
注意:如果您将它们作为两个独立的操作运行,那么底层数据可能会在两个操作之间发生变化。
运行delete之后,可以使用
@@ROWCOUNT
以获取删除的记录数。