update 多表关联 语法

update 多表关联 语法总是记不住,特此记录一下

update a
set a.InstrumentTypeID = b.DictionaryEnumID
from t_Basic_Instrument a
left join t_Basic_DictionaryEnum b on b.DictionaryEnumText=a.InstrumentName

### MySQL 中关联更新 在处理个相互关联的数据时,有时需要基于另一个的内容来更新当前的信息。这种操作称为关联更新,在MySQL中可以通过`UPDATE ... JOIN`语法实现。 #### 使用 `INNER JOIN` 进行关联更新 当希望仅更新那些存在于两个交集部分记录的时候可以采用这种方式: ```sql UPDATE table1 t1 INNER JOIN table2 t2 ON t1.common_field = t2.common_field SET t1.column_to_update = new_value; ``` 此命令会遍历两张格并找到所有满足条件的匹配项,之后执行设定好的更改动作[^1]。 #### 利用 `LEFT JOIN` 实现更灵活的控制 如果目标是在保留左侧全部记录的同时只针对有对应关系的部分实施修改,则可选用左外连接方式来进行更新: ```sql UPDATE table1 t1 LEFT JOIN table2 t2 ON t1.common_field = t2.common_field SET t1.column_to_update = CASE WHEN t2.some_column IS NOT NULL THEN 'new value' ELSE t1.column_to_update END; ``` 这段脚本确保即使右侧不存在相应配对也不会影响到左边原始数据的安全性[^4]。 #### 示例场景:教师课程信息同步 假设有一个名为 `teacher_courses` 的存储着每位老师教授的具体科目编号以及名称;还有一个叫作 `courses` 包含了所有开设科目的详情。现在想要把最新版的教学大纲链接添加给每一位授课讲师所负责的相关学科里去。那么就可以这样写SQL语句: ```sql UPDATE teacher_courses tc JOIN courses c ON tc.course_id = c.id AND c.name = 'SQL Server数据库' SET tc.syllabus_url = 'http://example.com/new-syllabus.pdf'; ``` 这条指令将会定位至特定课程名下的每一个教学任务,并为其分配新的教材资源地址[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值