如何使用SQL Server中的另一个表列更新表列

时间:2016-02-09 13:22:13

标签: sql-server-2008

我有一个表Student,其中包含StudentID列(主键),NameActive和另一个表Class,列ClassIDStudentID(来自Student的外键)。

我需要使用Class更新表StudentIDActiveStudent表格中studentID Name Active ------------------------- 101 abc 0 102 abc 1 103 abc 0 列中的值为1。

学生

ClassID  StudentID
------------------
  51       101
  52       102
  53       103

Class

我需要使用ActiveID为1的StudentID 102更新表Class

ClassID StudentID ------------------ 51 102 52 102 53 102 中的最终结果是

{{1}}

2 个答案:

答案 0 :(得分:1)

因此,您希望通过StudentId加入这两个表格,但使用StudentID - Student分组中唯一有效Name的{​​{1}}更新WITH ContainsActiveStudentName AS ( SELECT s.studentID AS StudentId, s.Name, s.Active, ActiveStudentID = ( SELECT TOP 1 s2.StudentID FROM Student s2 WHERE s.Name = s2.Name AND s2.Active = 1) FROM Student s WHERE EXISTS( SELECT 1 FROM Student s2 WHERE s.Name = s2.Name AND s2.Active = 1) ) UPDATE c SET c.StudentID = casn.ActiveStudentID FROM Class c INNER JOIN ContainsActiveStudentName casn ON c.StudentId = casn.StudentId

然后这应该做的工作:

has_selector?("form[method='POST']") # => it's a POST
has_selector?("form[method='PATCH']") # => it's a PATCH

这是sql-fiddle demo

答案 1 :(得分:0)

02:00