Запрос на получение несоответствующих значений из двух таблиц - PullRequest
1 голос
/ 15 октября 2011

Две таблицы: Department, Employee

Department столбцы:

  • DepartmentID,
  • DepartmentName

Employee столбцы:

  • EmployeeID
  • EmployeeName
  • DepartmentID

Теперь я хочу получить результат со столбцами DepartmentName, EmployeeName для тех записей, у которых нет совпадающих значений DepartmentID в обеих таблицах.

Как это можно сделать? Во сколько еще способов это можно сделать?

Ответы [ 4 ]

1 голос
/ 15 октября 2011

Приведенный ниже запрос поможет вам получить список всех отделов, на которые нет ссылок в таблице сотрудников

select DepartmentName
FROM Department d
left outer join EMPLOYEE e 
    on e.DepartmentID = d.DepartmentID 
where e.EmployeeID is null

Приведенный ниже запрос поможет вам получить список всех сотрудников, у которых нет соответствующего отдела,

select EmployeeName
FROM EMPLOYEE e
left outer join Department d
    on e.DepartmentID = d.DepartmentID 
where d.DepartmentID is null
1 голос
/ 15 октября 2011

На самом деле у нас нет времени, чтобы попытаться привести какой-либо пример кода на данный момент, но то, что вы ищете, может быть достигнуто с помощью запроса OUTER JOIN сервера SQL.

MSDN Join ....

Присоединения на Sql Server ...

Надеюсь, это поможет.

0 голосов
/ 05 ноября 2015

Это очень запоздалый ответ, но я хотел опубликовать его, чтобы помочь другим, кто сталкивался с этим - это хороший ресурс для понимания объединений. В вашем случае (или аналогичных) вам понадобится FULL OUTER JOIN с исключениями (т. Е. Где NULL). Ссылка включает изображение и синтаксис, который вам нужен.

Вот полный постер, помогающий понять другие объединения.

Вторая ссылка Сэнди похожа, но рисунок более приятен и его легче найти в источнике, который я публикую. Я бы только прокомментировал, но моя репутация недостаточно высока.

0 голосов
/ 16 октября 2011
SELECT d.DepartmentName,e.EmployeeName

FROM Department as d

FULL JOIN Employee as e

    ON e.DepartmentID = d.DepartmentID

WHERE e.DepartmentID IS null OR d.DepartmentID IS null
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...