日期:2014-05-18  浏览次数:20512 次

这个问题太有挑战性了,我搞不定,大家帮我看看
我需要更新一条记录的状态,这个状态由这个表里面的另外一个id的状态决定:
大概是这样:
update student set status=1 where id=1 and (当id为2的学生status=1)
前提是and 后面不能接select子句呀,我的神,我不会写sql语句了。
如果update student set status=1 where id=1 and (id=2 and status=1)
=========显然没有id既为1又为2的条目。。。。。。。
大家看看怎么搞定这个吧。
思考了1一天一夜了。
谢谢。



------解决方案--------------------
SQL code
create table student(id int,[status] int)
insert into student values(1,2),(2,1)

update s1 set [status]=s2.[status] from student s1
join student s2 on s1.id=s2.id-1

------解决方案--------------------
SQL code
update s1 set [status]=1 
from student s1,student s2 
WHERE s1.id=1
AND s2.id=2
AND S2.[status]=1