【发布时间】:2019-08-13 19:52:39
【问题描述】:
我有一个有两列的表。 Employee_id(每个员工唯一)和员工技能集的下一列。一名员工可以拥有多种技能。如果 A、B、C、D、E 是员工可以拥有的五种技能组,我如何检索没有技能组“c”的不同员工的列表。
employee_id skillset
1 A
1 C
2 E
3 A
3 B
3 C
4 D
4 C
5 B
我已经尝试了自我加入和其他方法,但它不起作用。
select distinct employee_id from employee_skillset where skillset not like 'C'
当我运行查询时,它仍然给我具有“c”技能集的employee_ids
【问题讨论】:
-
好吧,您考虑过为什么会得到这些答案吗?基本上,您的查询首先选择技能集不是 C 的所有行。然后您要求提供不同的 ID。听起来好像你需要来自另一端的攻击。
-
使用带有
NOT EXISTS的子查询。