sql >> Databasteknik >  >> RDS >> Oracle

Oracle - Uppdatera rader med ett minvärde i gruppen för en kolumn från en annan tabell

Din select-sats är mer komplex än den behöver vara, du kommer att få samma uppsättning så här:

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;

Din uppdatering kan göras så här, observera att avsnittet "och finns" är valfritt men jag tenderar att inkludera det för att göra avsikten med frågan tydligare.

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);



  1. Kör en fråga med en LIMIT/OFFSET och få även det totala antalet rader

  2. När ska man använda ärvda tabeller i PostgreSQL?

  3. skicka data från mySQL till ett api i Flask

  4. mysql-python installationsfel:Kan inte öppna inkludera filen 'config-win.h'