Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 下面的查询是如何工作的_Sql_Oracle - Fatal编程技术网

Sql 下面的查询是如何工作的

Sql 下面的查询是如何工作的,sql,oracle,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

有人能解释一下下面的查询是如何工作的吗。。我有一张叫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一起工作的。任何帮助都将不胜感激……

并且优先于或,因此该条件被解释为

(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
如果要查找不同的求值顺序,可以使用括号强制求值。

并且优先于或,因此该条件被解释为

(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

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

谢谢dasblinkenlight。如何解释此查询?从员工中选择*,其中groupid=12,id为1或id为2@questborn-由于group=12和id=1或id=2,因此它将匹配前两条记录。显示优先顺序。如果有任何歧义的可能性,包括有人试图稍后阅读代码,我建议始终使用括号来清楚说明,即使您不想更改求值顺序。谢谢dasblinkenlight。如何解释此查询?从员工中选择*,其中groupid=12,id为1或id为2@questborn-由于group=12和id=1或id=2,因此它将匹配前两条记录。显示优先顺序。如果存在任何歧义的可能性,包括对于稍后试图阅读代码的人,我建议始终使用括号来清楚说明,即使您不想更改求值顺序。