我有下面的查询,当它运行时说,有325行受到影响。但是,如果我只运行查询的SELECT部分,则返回331个结果。这意味着当整个查询运行时,只有325行正在更新,而不是331.我不确定这种差异可能是什么。我想它更新所有它所发现在查询的SELECT部分的行如何找出返回不同结果的两个查询之间的差异
此更新导致325行更新
UPDATE A
SET
A.status = X.c
FROM
tableA A INNER JOIN (
SELECT tableB.c_id, COUNT(*) as c
FROM tableB
LEFT JOIN tableC
ON tableB.c_id = tableC.c_id
WHERE tableC.c_id != tableC.c_id_update
GROUP BY tableB.c_id) X
ON A.c_id = X.c_id
而且只能运行在查询的SELECT部分返回331行
SELECT tableB.c_id, COUNT(*) as c
FROM tableB
LEFT JOIN tableC
ON tableB.c_id = tableC.c_id
WHERE tableC.c_id != tableC.c_id_update
GROUP BY tableB.c_id
我真的被困在搞清楚为什么有6(331-325)记录没有得到更新?!谢谢你的帮助。