我有两张 table
- 它包含的学生表(Student_id、school_code、name、year、...)
- 它包含的学校表(school_id、School_code、School_name、year 等等......)
我想根据学校代码和年份,使用学校代码表中的 school_id 列更新学生表中的 school_code 列。我有五年的数据。所以 school_id 每年都不同。
我的查询是
UPDATE Master.Student
SET school_code=( select school_id from Master.school as sc
JOIN master.student as st
ON st.school_code=sc.school_code
WHERE sc.year=x)
WHERE st.year=x;
但它没有更新。我收到子查询返回多个值
的错误。
最佳答案
既然可以直接执行子查询,为什么还要使用子查询?
UPDATE st
SET st.school_code = sc.school_id
FROM master.student AS st
JOIN Master.school AS sc
ON st.school_code = sc.school_code
WHERE sc.year=x
AND st.year=x;
有关更多信息,请参阅 UPDATE (Transact-SQL)
关于sql - 如何根据条件从另一个表更新表中的列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12363047/