ah... I've just remembered that you can't use an alias for the table to Update!

That is actually fine, as long as you use aliases for every other instance of the table:
Code:
update ldc_zip
set ldc_zip.ldc_ik = (select ldc_ik
                      from ldc_zip t2 
                      where ldc_zip.zip = t2.zip)
where ldc_zip.ldc_ik is null