foo.a से NULL करने का प्रयास करने के लिए अद्यतन के दो संभावित कारण हैं।
- foo में ऐसी पंक्तियाँ मौजूद हैं जिनके लिए बार में कोई मेल खाने वाली पंक्तियाँ नहीं हैं।
- बार में मिलती-जुलती पंक्ति में शून्य का bar.x है।
यदि उपरोक्त में से कोई भी स्थिति सत्य है, तो निम्नलिखित में foo के अपडेट शामिल नहीं होंगे। उन मामलों में foo.a जैसा था वैसा ही रहेगा:
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);