开发者

I'm having trouble understanding this example of the EXISTS clause

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);

So, when I read this query I think that I'm selecting the dertments, from table E2, that are equal to the departments from E1, that also have different phone numbers.

Since EXISTS is a correlated subquery, I'm also selecting the departments (from E开发者_开发技巧1) and the DeptPhone (also from E1), but I'm only selecting the departments work with my subquery.

In other words, I'm displaying the departments (that doen't have the same phone numbers as E1 but do have the same department name as E1), and the DeptPhone from E1. Am I reading that right?


No. You're selecting all rows from E1 if there exists one or more equal department with different phone numbers.


You are displaying all departments where there is another record with the same department name, but a different phone number. I.e., you are displaying all departments with more than one phone number.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜