下面的查询如何工作

时间:2012-09-25 17:40:08

标签: sql oracle

有人可以解释我下面的查询将如何工作..我有一个名为employee

的表
id FirstName LastName   Email            Groupid
1 Paula      Brown    pb@testdomain.org    12
2 James      Smith    jim@test.co.uk       12
3 James      Connor   jc@tes.co.uk         13


select * from employee where groupid=12 AND id NOT IN (1) OR id NOT IN (2)

这个查询是如何工作的?我试图了解AND子句如何与OR一起使用。任何帮助将不胜感激......

1 个答案:

答案 0 :(得分:4)

AND优先于OR,因此条件被解释为

(group=12 but id <> 1) OR (id <> 2)

所有三条记录都符合以下条件:

1 Paula      Brown    pb@testdomain.org    12 -- id <> 2
2 James      Smith    jim@test.co.uk       12 -- group=12 and id <> 1
3 James      Connor   jc@tes.co.uk         13 -- id <> 2

如果您正在寻找不同的评估顺序,可以使用括号强制它。