gpt4 book ai didi

mysql - 如何删除曾经具有特定值的实例?

转载 作者:可可西里 更新时间:2023-11-01 07:33:58 27 4
gpt4 key购买 nike

我目前正在尝试生成信息来识别在特定日期不在场的人。我正在使用 MySQL Workbench。

我有下表(为简洁起见总结):

Employee - Emp_ID, Emp_StartDate
Job - Job_ID, Emp_ID

我想获取一份员工列表及其开始日期,其中不包括从事特定工作的员工。

数据看起来像这样:

Job_ID - Emp_ID 
Job_AA - Emp_XX
Job_BB - Emp_XX
Job_BB - Emp_YY
Job_CC - Emp_YY
Job_AA - Emp_ZZ
Job_BB - Emp_YY

我只想获取未从事 Job_AA 工作的员工的信息,无论他们是否还从事其他工作。

我是一个初学者,我的基本出发点是:

SELECT Emp_ID, Emp_StartDate
FROM Employee
JOIN Job USING (Emp_ID)
WHERE Job_ID != "Job_AA";

我遇到的问题是,例如,Emp_XX 仍会显示为在 Job_BB 上工作,这是我不希望的 - Emp_XX 不需要出现在生成的列表中。我觉得这需要一个子查询,但我无法弄清楚那里需要什么。

在此先感谢您的帮助!

最佳答案

不存在:

SELECT e.Emp_ID, e.Emp_StartDate
FROM Employee e
WHERE NOT EXISTS (
SELECT 1 FROM Job
WHERE Emp_ID = e.Emp_ID AND Job_ID = 'Job_AA'
)

或者使用 join 和 GROUP BY employee:

SELECT e.Emp_ID, e.Emp_StartDate
FROM Employee e INNER JOIN Job j
ON j.Emp_ID = e.Emp_ID
GROUP BY e.Emp_ID, e.Emp_StartDate
HAVING SUM(j.Job_ID = 'Job_AA') = 0

关于mysql - 如何删除曾经具有特定值的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57577112/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com