如何使用mysql找到具备所需技能的员工
我有一个MySQL表Employee,它有两列:如何使用mysql找到具备所需技能的员工,mysql,sql,Mysql,Sql,我有一个MySQL表Employee,它有两列: empl_no skill ========= ========================= 1001 Java 1001 Python 1002 JavaScript 1003 C# 1003 Excel Macro 1001 C 如何使用SQL Select语句筛选出拥有所列技能“Java”、“Python”、“C”的员工?您可以使用in子句和 select empl_n
empl_no skill
========= =========================
1001 Java
1001 Python
1002 JavaScript
1003 C#
1003 Excel Macro
1001 C
如何使用SQL Select语句筛选出拥有所列技能“Java”、“Python”、“C”的员工?您可以使用in子句和
select empl_no
from my_table
where skill in ( 'Java', 'Python', 'C' )
group by empl_no
having count(distinct skill) = 3
您可以使用in子句和having
select empl_no
from my_table
where skill in ( 'Java', 'Python', 'C' )
group by empl_no
having count(distinct skill) = 3
尝试此查询
SELECT empl_no FROM employee
WHERE skill IN ( 'Java', 'Python', 'C' )
GROUP BY empl_no HAVING COUNT(skill)=3;
尝试此查询
SELECT empl_no FROM employee
WHERE skill IN ( 'Java', 'Python', 'C' )
GROUP BY empl_no HAVING COUNT(skill)=3;
这就是你要找的吗?这就是你要找的吗?为上面的查询添加一个假设,即员工编号和技能的组合在表中是唯一的。这满足了我的需要。但是,是否有其他Select语句?我不确定我的表设计是否适合这种员工技能筛选搜索。如果表格设计是正确的,那么Anil的select语句似乎是使用“分组方式”的唯一解决方案。。。有计数(…)'的。这是真的吗?@w2k现在表的设计是正确的,使用(…)=3是检查所有技能是否与用户相关的关键。。在执行中检查技能数量是否匹配以避免技能关系中出现重复技能的情况。不管怎样,这个概念还是一样的。。最后。。作为Select语句,这是唯一可能的..为上述查询添加一个假设,即员工编号和技能的组合在表中是唯一的。这满足了我的需要。但是,是否有其他Select语句?我不确定我的表设计是否适合这种员工技能筛选搜索。如果表格设计是正确的,那么Anil的select语句似乎是使用“分组方式”的唯一解决方案。。。有计数(…)'的。这是真的吗?@w2k现在表的设计是正确的,使用(…)=3是检查所有技能是否与用户相关的关键。。在执行中检查技能数量是否匹配以避免技能关系中出现重复技能的情况。不管怎样,这个概念还是一样的。。最后。。作为Select语句,这是唯一可能的。。