mysql update 根据表中字段查询另一张表更新更新

问题描述

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

mysql update 根据表中字段查询另一张表更新更新的相关文章

求大神指教怎么从一张表的字段获取另一张表的字段,后台操作,求一个添加方法例子,重赏

问题描述 现在要在逻辑层写一个方法查询订单表,然后从订单表的投资人姓名查询到邀请人的ID,再把数据添加到返利表中去,在控制器里面调用方法,求大神教写一个方法在调用出来.特别的急重赏 解决方案 解决方案二:先获取订单表信息,然后用订单表的投资人姓名去客户表找对应的推荐人,如果能成功的获取到推荐人,则往分润表新增数据,这个你想写成啥样?解决方案三:把订单表的的UserSysNo//用户系统编号.OrderID//订单号.Status//订单表的状态为1,插入到返利表为0.ProspectiveEar

修改MySQL数据库中表和表中字段的编码方式的方法_Mysql

今天向MySQL数据库中的一张表添加含有中文的数据,可是老是出异常,检查程序并没有发现错误,无奈呀,后来重新检查这张表发现表的编码方式为latin1并且原想可以插入中文的字段的编码方式也是latin1,然后再次仔细观察控制台输出的异常,进一步确定是表和表中字段编码不当造成的,那就修改表和其中对应的字段呗,网上找了一会儿,你别说还真有,执行完sql脚本后果然可以存入中文了,尽管如此还是认为有必要总结一下,古人云:好记性不如烂笔头嘛,呵呵呵. 修改表的编码方式:ALTER TABLE `test`

查询结果-查询一张表中的某个字段对应另一张表中多条数据某个字段等于第一张表的那个字段的数据,并按要求显示

问题描述 查询一张表中的某个字段对应另一张表中多条数据某个字段等于第一张表的那个字段的数据,并按要求显示 给的表例如 表一: stuID stuName 1 小明 2 小红 表二: stuID course Score 1 数学 97 1 语文 70 1 英语 88 2 数学 92 要求查询结果为: stuID stuName 语文 数学 英语 1 小明 70 97 88 2 小红 92 解决方案 类似下面这样,下面语句没有调测过. select stuID,(select stuName fr

sql server-本人菜鸟,求教如何把一个表的字段插入到另外一个表中

问题描述 本人菜鸟,求教如何把一个表的字段插入到另外一个表中 已知表usis.TExamination a hisbase.tpatientinfo T 2个表中都有上万条数据,有相关的,有不相关的.现在2张表通过字段关联 a.fzyh = T.fkey现在我要通过关联,把 t表中的t.flsh 插入到a.ftyzyh中语句该怎么写啊? 我自己写了条. UPDATE usis.TExamination a SET A.FTYZYH=(SELECT flsh FROM hisbase.tpatie

sql查询表中字段值在另一个表中的字段是否出现过

问题描述 sql查询表中字段值在另一个表中的字段是否出现过 各位大神,小弟初学sql想请教一个问题~~先谢谢大家啦~~ 例如我有两个表: 表A:personal (人员表) pid name 1 aaa 2 bbb 3 ccc 4 ddd 5 eee 6 ffff 7 ggg 表B:metting (会议表,pidlist代表参加会议的人员,用"|"分隔) mid pidlist 1 |2|3|4| 2 |1|3|4| 3 |1|2|4| 我想要 列出表A中没有参加会议的人,如果按我的

并发操作-a,b两个请求并发 注册相同用户名,假如表中字段未设置唯一索引,程序上如何控制唯一性啊

问题描述 a,b两个请求并发 注册相同用户名,假如表中字段未设置唯一索引,程序上如何控制唯一性啊 a,b同时查询表,结果是可以注册的,所以都执行了insert,但用户名相同,这样数据就不唯一了.是会这样吗,如何避免呢? 解决方案 把查询和插入放在同一事务中,可以保证整个事务中数据库数据的一致性,这样应该可以避免你说的问题. 上述并发一起的问题,根源在于查询与插入两个时间点数据库数据不一致导致. 解决方案二: 必须有有个不同的key,比如你可以增加一个字段,为userid,这个不会变,但用户名可以

sql-access表中字段为空时,程序运行产生中断,大家看下这些代码该怎么修改?

问题描述 access表中字段为空时,程序运行产生中断,大家看下这些代码该怎么修改? 解决方案 将这些字段设置成非可空字段,并且设置默认值为"",可以一劳永逸解决这个问题. 解决方案二: 用try catch来捕获异常 加错误处理

SQL 把表中字段存储的逗号隔开内容转换成列表形式

原文:[原创]SQL 把表中字段存储的逗号隔开内容转换成列表形式 我们日常开发中,不管是表设计问题抑或是其他什么原因,或多或少都会遇到一张表中有一个字段存储的内容是用逗号隔开的列表. 具体效果如下图: ------>      从左边图转换成右边图,像这种需求,我们难免会遇到.      今天我写了个存储过程来解决这种问题.主要方式是利用master..spt_values表.       具体存储过程如下:        -- Author: LHM -- Create date: 2015-

如何使用规则来限制数据表中字段的有限范围

问题描述 问题是:如何使用规则来限制数据表中字段的有限范围 解决方案 解决方案二:使用rule或者CHECK约束都可以达到你要的效果!建议在数据库层实施!如果是在界面层,建议定义属性检查.解决方案三:能不能详细的介绍一下啊,我不太清楚唉,谢谢解决方案四:CHECK约束列可以有任意多个CHECK约束,并且约束条件中可以包含用AND和OR组合起来的多个逻辑表达式.列上的多个CHECK约束按创建顺序进行验证.搜索条件必须取值为布尔表达式,并且不能引用其它表.列级CHECK约束只能引用被约束的列,表级C