2011-03-05 99 views
1

如果可能,我还没有试图弄清楚这种情况或涉及哪种类型的语句。仅当其他记录包含来自不同字段中第一条记录的值时才选择记录

我正在处理公司标准“员工”分贝。数据库具有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)) 

试试这个。

相关问题