SQL查询有问题

时间:2017-08-04 20:49:38

标签: sql

我对我老师的SQL查询有疑问。我们正在努力寻找申请CS但却不适用于EE的学生。

Select sID, sName
From Student
Where sID = any (select sID from Apply where major = ‘CS’)
And sID <> any (select sID from Apply where major = ‘EE’)

上述查询显然不正确。我理解为什么它不正确。我们将获得那些不适用于EE的学生的sID,无论他们是否申请了CS。

以下查询显然是正确的查询。为什么以下查询有效?

Select sID, sName
From Student
Where sID = any (select sID from Apply where major = ‘CS’)
And not sID = any (select sID from Apply where major = ‘EE’)

2 个答案:

答案 0 :(得分:0)

And a <> b

And not a = b

在语法上是等同的,并且两者在实现期望的结果方面都是正确的。

答案 1 :(得分:0)

not sID = any (select sID from Apply where major = ‘EE’)

相当于:

sID <> all (select sID from Apply where major = ‘EE’)