2011-03-05 3 views
1

이 문제를 파악하려고 시도하지 않았거나 가능한 경우 어떤 유형의 명령문이 포함될 수 있습니까?다른 레코드가 다른 필드의 첫 번째 레코드 값을 포함하는 경우에만 레코드 선택

저는 회사 표준 인 'employees'db를 다루고 있습니다. DB에는 USER_ID 및 SUPERVISOR_ID에 대한 필드가 있습니다. 직원이 상사인지 또는 부하 직원인지를 나타내는 필드가 없습니다. 직원이 부하 직원인지 여부를 확인하는 유일한 방법은 다른 레코드에 SUPERVISOR_ID 필드에 직원의 USER_ID가 있는지 여부입니다.

하위가있는 직원 만 반환하는 first_name/last_name 기반 쿼리가 필요합니다.

SELECT * from employees e 
WHERE e.first_name LIKE '%<first_name_string>%' 
AND e.last_name LIKE '%<last_name_string>%' 

*(and where at least one record lists this USER_ID in it's SUPERVISOR_ID field) 어떤 도움

감사합니다!

답변

2
SELECT * from employees e 
WHERE e.first_name LIKE '%<first_name_string>%' 
AND e.last_name LIKE '%<last_name_string>%' 
AND (SELECT COUNT(*) FROM employees WHERE employees.SUPERVISOR_ID = e.USER_ID) > 0) 
1
select * from employees e 
where e.first_name LIKE '%firstnamestring%' 
AND e.last_name LIKE '%lastnamestring%' 
AND (e.USER_ID in 
(select SUPERVISOR_ID from employees)) 

이보십시오.

관련 문제