SQL 中相关子查询方面的问题
DELETE FROM job_history JH
WHERE employee_id =
(SELECT employee_id
FROM employees E
WHERE JH.employee_id = E.employee_id
AND START_DATE = (SELECT MIN(start_date)
FROM job_history JH
WHERE JH.employee_id = E.employee_id
-- group by employee_id 此处的group by 用与不用为啥效果一样
)
AND 3 > (SELECT COUNT(*)
FROM job_history JH
WHERE JH.employee_id = E.employee_id
--GROUP BY EMPLOYEE_ID 此处的group by 用与不用为啥效果一样
HAVING COUNT(*) >= 2));
请问对employees 和 job_history 进行 相关子查询 时 group by条件是怎样被间接使用的
请各位大神解释一下 相关子查询中 出现上述的问题 建两表就可以验证 : 小弟在此谢了
------解决方案--------------------你已经写了WHERE JH.employee_id = E.employee_id
那么对于job_history 某个特定的employee_id, 在employees中查到的也就只有一个employee_id的记录,用不用group by当然就一样了。