2013-07-07 32 views
0

想象我有兩張表,「部門」表和「員工」表。 此僱員表有一個「類別」列。指定部門? - SQL

我想查詢選擇只有指定類型的員工的部門。

謝謝。

+0

請告訴我們您的代碼到目前爲止 – mishik

+0

什麼DBMS?查詢語法和編寫查詢的首選方式取決於它。 – Barmar

回答

0

您需要在您的部門和員工表中執行連接,將這兩個表連接在一起。在where子句中,您將指定所需的員工類型。

這將爲每個員工返回一行,這可能不是您想要的。您可以在您要在部門表中查找的重要列上使用不同的功能以獲得最終答案。

0
select distinct dept_id 
from employee 
where category = 'cat1' 
and dept_id not in (select distinct dept_id 
        from employee 
        where dept_id <> 'cat1'); 
0
SELECT dept_id 
FROM departments 
WHERE dept_id NOT IN 
    (SELECT DISTINCT dept_id 
    FROM employee 
    WHERE category_id != @specified_category) 

這個查詢假設沒有部門,沒有員工,因爲它也將返回這些空部門。如果這是一個問題,您可以添加:

AND dept_id IN (SELECT distinct dept_id FROM employee) 
+0

我相信這會解決我的問題,讓我試試看。 – user2558532

0

Select d.id_department from departments d where not exists (Select e.id_employee from employees e where e.category!=your_category and e.id_department=d.id_department)您還需要驗證該部門擁有員工。