2014-09-29 117 views
0

我想在內部連接上使用子查詢從部門中沒有程序員的表中取回所有部門編號和名稱,但是由於它返回時遇到了一些麻煩沒有價值。這是我的代碼,謝謝你的幫助。SQL內部連接和子查詢

select Departments.Department_Name, Departments.Department_No 
from employees inner join departments 
on departments.department_No = employees.Department_No 
where Employees.Department_No != 
      (select Department_Name 
      from Employees, Departments 
      where Job_ID = '%pro%') 
+0

您department_name'比較''到department_no'。這看起來不正確。 – 2014-09-29 11:55:31

+0

你能提供一個表/結果的例子嗎? – 2014-09-29 11:56:06

+0

您的子查詢正在使用'Employees,Departments'而沒有加入 - 這看起來不正確。你應該用你的表格結構,樣本數據和期望的結果來編輯你的問題。 – Taryn 2014-09-29 11:56:52

回答

1

據我所知,你想是這樣的:

select d.Department_Name, d.Department_No 
from departments d 
WHERE NOT EXISTS (SELECT 1 FROM Employees 
        WHERE d.Department_No = Department_No 
        AND Job_ID LIKE '%pro%') 

這將選擇所有的部門,對此不存在的僱員的job_ib包含「親」。

+0

謝謝,這很有效。 – BamBam 2014-09-29 12:31:52

0

試試這個:

select d1.Department_Name,d1.Department_No 
from departments d1 
where d1.Department_No in (select e1.Department_No 
          from Employees e1 
          where e1.Department_No=d1.Department_No and 
          e1.job_id not in ('programmer'));