仅当另一条记录包含来自不同字段中第一条记录的值时,才选择记录

时间:2011-03-05 16:39:25

标签: mysql

如果可能的话,我没有任何运气试图解决这个问题或涉及什么类型的声明。

我正在处理公司标准的'员工'数据库。 db具有USER_ID和SUPERVISOR_ID的字段。没有字段表明员工是否是主管或是否有下属。了解员工是否有下属的唯一方法是,如果任何其他记录的员工的USER_ID在其SUPERVISOR_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 个答案:

答案 0 :(得分: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 :(得分: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))

试试这个。