Oracle
 sql >> база данни >  >> RDS >> Oracle

Oracle - Актуализиране на редове с минимална стойност в групата на колона от друга таблица

Вашият оператор select е по-сложен, отколкото трябва, ще получите същия набор по този начин:

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;

Вашата актуализация може да бъде направена по този начин, имайте предвид, че секцията „и съществува“ не е задължителна, но аз съм склонен да я включа, за да направя намерението на заявката по-ясно.

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Ефективен начин за актуализиране на всички редове в таблица

  2. Мога ли да групирам по в SQL заявка с функция прозорец?

  3. Преобразувайте String ISO-8601 дата в типа данни за времеви печат на Oracle

  4. DBCP Connection Pool loginTimeout

  5. Oracle PL/SQL версии на INET6_ATON и NTOA функции?