Potrzebujemy szczegółowych informacji o tym, co nie działa, ale myślę, że wystarczy użyć:
UPDATE TablePeople
SET missingdate = (SELECT MAX(te.replacementDate)
FROM TABLEEVENT te
WHERE te.people_id = TablePeople.id)
WHERE missingdate IS NULL
Notatki
- MAX jest używany do zwrócenia ostatniej daty wymiany, w obawie przed ryzykiem, że otrzymujesz wiele wartości z podzapytania
- Jeśli nie ma rekordu pomocniczego w TABLEEVENT, zwróci on null, więc nie ma zmian