sql >> Database teknologi >  >> RDS >> Oracle

Oracle - Opdater rækker med en min-værdi i gruppen af ​​en kolonne fra en anden tabel

Din select-sætning er mere kompleks, end den behøver at være, du får det samme sæt på denne måde:

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 opdatering kan udføres på denne måde. Bemærk, at afsnittet "og eksisterer" er valgfrit, men jeg har en tendens til at inkludere det for at gøre hensigten med forespørgslen mere klar.

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. Kontroller, om rækken findes i databasen, før du indsætter

  2. Valgfri måned eller dag i MySQL-datofeltet fra PHP

  3. Hvordan kan jeg se SQL-udførelsesplanen i Oracle?

  4. Symfony3 gemmer hver opdatering i databasen