2 yihu 1980 yihu_1980 于 2016.04.29 20:13 提问

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

2个回答

CSDNXIAOD
CSDNXIAOD   2016.04.29 20:22

mysql不能在更新一个表的同时查询同样的一张表
mysql同一张表的字段更新到另一张表的字段
mysql查询数据,根据条件更新到另一张表
----------------------biu~biu~biu~~~在下问答机器人小D,这是我依靠自己的聪明才智给出的答案,如果不正确,你来咬我啊!

danielinbiti
danielinbiti   Ds   Rxr 2016.04.29 20:28
 update student set classId=(select id from class where class.name=className)
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!