Идея вашего SQL-запроса такова:
- Получить все записи с ename =
Jack Abraham
( e1 )
- Затем самостоятельно присоединяйтесь, чтобы получить сотрудников, которые находятся в одном отделе с
Jack Abraham
, но не Jack Abraham
( e : то же самое dept
, но отличаются id
).
Так что этот запрос предназначен не только для получения сотрудников, чьи имена не Jack Abraham
, как вы думали.
Это чтобы получить всех сотрудников, чьи имена не Jack Abraham
, но в их отделе есть кто-то по имени Jack Abraham
.
Но даже это неправильный запрос, если в одном отделе работают 2 человека с одинаковыми именами Jack Abraham
. Должно быть:
FROM employee e
JOIN employee e1 ON e.dept = e1.dept
WHERE e1.ename = 'Jack Abraham'
AND e.ename <> 'Jack Abraham' -- e.ename <> e1.ename;
Так что вы можете попробовать спросить того, кто пишет этот запрос, об истинной цели этого.
Или вы можете попросить своего БА получить требование и переписать запрос.