我有下面的查詢,當它運行時說,有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)記錄沒有得到更新?!謝謝你的幫助。