假设我有以下句子,内部连接的结果是3行,其中a.Id =( V: x7 Y) A! o2 w
b.Id,但是3行中的每行都有不同的b.Value。因为只更新了tableA所以在更新中使用了哪一行?' N% n& J5 d- R) |9 ]' y' u5 e3 f
UPDATE aSET a.Value = b.ValueFROM tableA AS aINNER JOIN tableB as b ON a.Id = b.Id # [) [& \$ e( `9 |/ i解决方案: ) A+ j- y. y; F/ ^$ Y D. ^
我认为没有规则,你不能依赖特定的结果。 & k' h* `! e+ i4 Z( n如果要排在特定行之后,请说出最后一行,可以用apply,例如:0 H1 V9 E" C3 a8 r( A7 p2 P
UPDATE aSET a.Value = b.ValueFROM tableA AS aCROSS APPLY select top 1 * from tableB as b where b.id = a.id order by DateColumn desc as b