2014-09-29 5 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'. Это не кажется правильным. –

+0

Не могли бы вы привести пример таблицы/результата? –

+0

Ваш подзапрос использует «Сотрудники, отделы» без присоединения - это тоже не так. Вы должны отредактировать свой вопрос со своими структурами таблиц, примерами данных и желаемым результатом. – Taryn

ответ

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

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')); 
Смежные вопросы