Er zijn twee mogelijke redenen voor de update om te proberen foo.a naar NULL te brengen.
- Er bestaan rijen in foo waarvoor geen overeenkomende rijen in de balk zijn.
- De overeenkomende rij in de balk heeft bar.x van null.
Het volgende sluit updates voor foo uit als een van de bovenstaande voorwaarden waar is. In die gevallen blijft foo.a zoals het was:
update foo
set a = (select distinct( x ) from bar where bar.y = foo.b )
where exists
(select *
from bar
where bar.y = foo.b
and bar.x is not null);