У меня есть таблица Employee
, которая содержит имя и идентификатор менеджера, поэтому я использую самосоединение, чтобы найти менеджера сотрудника.
Структура моей таблицы и данные таблицы:
CREATE TABLE Employee
(
EmployeeID INT PRIMARY KEY,
Name NVARCHAR(50),
ManagerID INT
)
INSERT INTO Employee
SELECT 1, 'Mike', 3
UNION ALL
SELECT 2, 'David', 3
UNION ALL
SELECT 3, 'Roger', NULL
UNION ALL
SELECT 4, 'Mary', 2
UNION ALL
SELECT 5, 'Joseph',2
UNION ALL
SELECT 7, 'Ben',2
Выбор всех данных
SELECT *
FROM Employee
Вывод:
Теперь, когда я использую этот запрос:
SELECT e1.Name, e2.NAME AS 'mngrname'
FROM Employee e1
INNER JOIN Employee e2 ON e1.EmployeeID = e2.ManagerID
Я получаю данные как:
Теперь, когда я изменяю запрос на:
SELECT e1.Name, e2.NAME AS 'mngrname'
FROM Employee e1
INNER JOIN Employee e2 ON e1.ManagerID = e2.EmployeeID
Вывод:
Вопрос;почему это происходит?Почему данные меняются?