使用连接和匹配特定列执行SQL更新

时间:2011-04-12 19:25:03

标签: sql sql-server database tsql join

我有一个数据库,其中包含一个包含CLASS_LEVEL列的表。我还有另一个包含CLASS_LEVEL列的数据库。在第一个表中,每个学生只有一行,在第二个表中,每个学生有多行,因此有多个CLASS_LEVELS。我需要使用TABLE2中的值更新TABLE1中的值。这是我目前的代码:

UPDATE R
SET R.CLASS_LEVEL = A.CLASS_LEVEL
FROM Residents R
INNER JOIN
CAMPUS..ACADEMIC A
ON
R.PEOPLE_CODE_ID = A.PEOPLE_ID

但我需要以某种方式添加一个where子句,以便使用特定的A.CLASS_LEVEL结果进行更新,而不仅仅是与该学生相关的任何结果,如:

WHERE A.ACADEMIC_TERM='Fall' AND A.ACADEMIC_YEAR='2011'

我不知道如何使用where表或类似于SQL表格的东西......有什么建议吗?

1 个答案:

答案 0 :(得分:2)

就是这么简单

UPDATE
 R
SET
  R.CLASS_LEVEL = A.CLASS_LEVEL
FROM
  Residents R
  INNER JOIN
  CAMPUS..ACADEMIC A ON R.PEOPLE_CODE_ID = A.PEOPLE_ID
WHERE
  A.ACADEMIC_TERM='Fall' AND A.ACADEMIC_YEAR='2011'
  • 在相关ID上加入R和A
  • 将A限制为一组行

净效果是限制R匹配A

的过滤子集中的行