问题描述
- mysql update 根据表中字段查询另一张表更新更新
-
mysql有两张表,班级表class,包含
| id | name |
| 1 | 一班 |
| 2 | 二班 |
学生表student,其中classId为空,className有值并对应class表中的name
| id | name | classId | className |
| 1 | 一班 | | 一班 |
| 2 | 二班 | | 二班 |
| 3 | 一班 | | 一班 |
| 4 | 二班 | | 二班 |
现在我想写一个sql根据student表中的className值,查询表class来更新student表的classId,
sql类似于这种逻辑,不知道该怎么写,请指教
update student
set classId =
CASE
WHEN className = '一班' THEN (SELECT id FROM class WHERE name = className )WHEN className = '二班' THEN (SELECT id FROM class WHERE name = className )
END
解决方案
mysql不能在更新一个表的同时查询同样的一张表
mysql同一张表的字段更新到另一张表的字段
mysql查询数据,根据条件更新到另一张表
解决方案二:
update student set classId=(select id from class where class.name=className)
时间: 2024-12-22 01:54:12