【发布时间】:2018-08-03 08:51:06
【问题描述】:
我正在尝试进行 SQL Select 查询,在该查询中可以看到今天工作的所有员工。
第一个查询选择所有员工:
SELECT Medarbejdere.navn AS Medarbejder
FROM Medarbejdere
另一个选择显示不在工作的员工。
SELECT Medarbejdere.navn AS Medarbejder
FROM Medarbejdere, Fravaer
WHERE Medarbejdere.id = Fravaer.medarbejder
AND Fravaer.slut IS NULL
如何将两个 select 语句结合起来,从而将今天不上班的员工从完整的员工列表中删除(第一个 select 语句)?
我尝试使用 UNION 和 JOINS。
有什么建议吗?
编辑--> 这确实有效,但我想让它与 JOIN 一起工作
SELECT Medarbejdere.navn AS Medarbejder
FROM Medarbejdere
EXCEPT
SELECT Medarbejdere.navn AS Medarbejder
FROM Medarbejdere, Fravaer
WHERE Medarbejdere.id = Fravaer.medarbejder
AND Fravaer.slut IS NULL
没有结束日期的Fravaer(缺席)(我试图过滤掉的那些)
INSERT INTO Fravaer VALUES (3, '2018-08-01', null, 4);
或有结束日期的缺席(我试图包括的那些)
INSERT INTO Fravaer VALUES (6, '2018-08-01', '2018-09-01', 5);
【问题讨论】:
-
提供样本数据和期望的结果。