2011-03-05 101 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)) 

試試這個。

相關問題