【发布时间】:2016-04-06 07:41:14
【问题描述】:
我正面临这种情况:表 Employee 有 join_date 列。表 Booking 具有 booking_date 列和 Employee 的外键 (employee_id)。 Employee 在其加入日期列中有一些 NULL 值。我想用这些员工的 FIRST booking_date 值填充它们。我该怎么办?
仅供参考: 我可以使用复杂的 join 语句来提取 join_date 为 NULL 的员工的第一个 booking_date,如下所示:
SELECT emp.employee_id, emp.joining_date, temp2.booking_date FROM employee emp
LEFT JOIN (SELECT bo.employee_id, bo.booking_date FROM booking bo
INNER JOIN (SELECT employee_id, MIN(booking_date) mindate FROM booking GROUP BY employee_id) temp1
ON bo.employee_id = temp1.employee_id AND bo.booking_date = temp1.mindate) temp2
ON emp.employee_id = temp2.employee_id
WHERE emp.joining_date IS NULL;
但我很难将这个复杂的选择放入更新语句:
UPDATE employee emp
SET emp.joining_date = (SELECT ...)
WHERE emp.joining_date IS NULL;
【问题讨论】:
标签: oracle