使用嵌套选择查询更新查询

时间:2012-08-12 19:37:08

标签: sql sql-server-2008 sql-update

在这里,我有一些学生信息表。默认授权值为0。 在检查了一些条件后,我将一些学生分组并将其更新为1。

只有那些符合既定条件的学生,即

select * from studentA 
where schName ='IES DADAR' and lang = 'E' 

[1]: http://rk.somee.com/untitled.jpg

我正在尝试使用以下代码,但它不按照我给定的条件进行过滤,而是将每个学生的授权值更改为1.

update studentA
set Authorized = '1'
where Authorized IN 
( select Authorized from studentA 
where schName ='IES DADAR' and lang = 'E')

你也可以建议我另一种方法。

2 个答案:

答案 0 :(得分:3)

update studentA 
set Authorized = '1' 
where schName ='IES DADAR' 
and lang = 'E'

答案 1 :(得分:2)

子查询

 select Authorized from studentA 
 where schName ='IES DADAR' and lang = 'E'

返回0,因此您的实际查询变为

update studentA
set Authorized = '1'
where Authorized IN ('0')

从而更新表格中的每一行。

所以,它应该是

update studentA
set Authorized = '1'
where schName ='IES DADAR' and lang = 'E'