2

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

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 一起使用。任何帮助,将不胜感激...

4

1 回答 1

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

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

于 2012-09-25T17:42:51.460 回答