У меня проблемы с пониманием этого примера предложения EXISTS - PullRequest
1 голос
/ 12 августа 2011
SELECT E1.Department, E1.DeptPhone
FROM EMPLOYEE AS E1
WHERE EXISTS
    (SELECT E2.Department
    FROM EMPLOYEE AS E2
    WHERE E1.Department = E2.Department
        AND E1.DeptPhone <> E2.DeptPhone);

Итак, когда я читаю этот запрос, мне кажется, что я выбираю из таблицы E2 тексты заявок, которые равны департаментам из E1, которые также имеют разные телефонные номера.

Поскольку EXISTS является коррелированным подзапросом, я также выбираю отделы (из E1) и DeptPhone (также из E1), но я только выбираю работу отделов с моим подзапросом.

Другими словами, я отображаю отделы (которые не имеют те же номера телефонов, что и E1, но имеют то же название отдела, что и E1), а также DeptPhone из E1.Я читаю это правильно?

Ответы [ 2 ]

1 голос
/ 12 августа 2011

Нет. Вы выбираете все строки из E1, если существует один или несколько одинаковых отделов с разными телефонными номерами.

0 голосов
/ 12 августа 2011

Вы отображаете все отделы, где есть другая запись с тем же названием отдела, но с другим номером телефона.То есть вы отображаете все отделы с более чем одним номером телефона.

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