Kami membutuhkan detail tentang apa yang tidak berfungsi, tetapi menurut saya Anda hanya perlu menggunakan:
UPDATE TablePeople
SET missingdate = (SELECT MAX(te.replacementDate)
FROM TABLEEVENT te
WHERE te.people_id = TablePeople.id)
WHERE missingdate IS NULL
Catatan
- MAX digunakan untuk mengembalikan tanggal penggantian terbaru, karena takut akan risiko bahwa Anda mendapatkan beberapa nilai dari subkueri
- Jika tidak ada record pendukung di TABLEEVENT, maka akan mengembalikan null sehingga tidak ada perubahan