2013-11-03 2 views
-1

이 SQL 질문에 대한 유사한 결과 그룹을 확인하려면 어떻게해야합니까?여러 반환 값이있는 INTERSECTing 테이블

=========== 
EMPLOYEE 
=========== 
ID | Name | 
=========== 
1 | EMP1 | 
2 | EMP2 | 

================== 
HASSKILL 
================== 
EMPID | SkillID | 
    1 | 001  | 
    1 | 002  | 
    1 | 003  | 
    2 | 003  | 
    2 | 004  | 
    2 | 005  | 

JOB 
=================== 
JobID | NEEDSKILL | 
=================== 
    1 | 002  | 
    1 | 003  | 

내가 할 수있는 다음과 같은 명령을 사용하여 작업에 필요한 기술을 얻을 :

SELECT NEEDSKILL FROM JOB WHERE JobID = 1; 

어떻게 와줘없이 작업 일에 필요한 기술을 가진 직원 및 디스플레이 직원을 통해 내가 "루프"할/sql?

답변

2
select empid from HASSKILL, JOB 
where jobid = 1 and skillid = needskill 
group by empid 
having count(0) = (select count(0) from JOB where jobid = 1) 
+0

안녕하세요, 답장을 보내 주셔서 감사합니다. 내가 실제로 이해할 수없는 코드를 설명해 주시겠습니까? 감사. – curiosity

+0

각 직원의 기술 수를 계산하고 필요한 수의 기술 수와 동일한 수를 확인합니다. –

+0

동일한 번호 기술이 필요하지만 다른 기술 ID가있는 다른 작업이 있으면 잘못되지 않습니까? – curiosity

관련 문제