Uw select statement is complexer dan nodig is, u krijgt op deze manier dezelfde set:
SELECT emp.employee_id,min(bo.booking_date) booking_date
FROM employee emp
LEFT JOIN booking bo
ON bo.employee_id = emp.employee_id
WHERE emp.joining_date is NULL
GROUP BY emp.employee_id;
Je update kan op deze manier worden gedaan. Houd er rekening mee dat het gedeelte 'en bestaat' optioneel is, maar ik heb de neiging om het op te nemen om de bedoeling van de zoekopdracht duidelijker te maken.
UPDATE employee emp
SET emp.joining_date =
(SELECT min(booking_date) from booking bo where bo.employee_id = emp.employee_id)
WHERE emp.joining_date IS NULL
and exists(select * from booking bo where bo.employee_id = emp.employee_id);