Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Oracle - Cập nhật các hàng có giá trị nhỏ nhất trong nhóm cột từ một bảng khác

Câu lệnh select của bạn phức tạp hơn mức cần thiết, bạn sẽ nhận được bộ tương tự theo cách này:

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;

Cập nhật của bạn có thể được thực hiện như thế này, lưu ý rằng phần "và tồn tại" là tùy chọn nhưng tôi có xu hướng bao gồm nó để làm cho ý định của truy vấn rõ ràng hơn.

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. Oracle Trigger để cập nhật cùng một bảng

  2. Không tìm thấy dữ liệu hoặc xảy ra quá nhiều lỗi ngoại lệ hàng khi chèn hàng loạt bản ghi

  3. Tên đường dẫn đầy đủ của cài đặt JDK cho Oracle SQL Developer

  4. SQL - Thiếu dấu ngoặc đơn bên phải

  5. kiểm tra ngày hợp lệ được khai báo trong varchar2