当前位置: 首页 > news >正文

MySQL 根据一个表的字段值,更新另一个表的字段


UPDATE member_info SET
dept_id=(SELECT dept_id FROM sys_user WHERE SYS_USER.ID=member_info.user_id) ,
dept_name=(SELECT dept_name FROM sys_user WHERE SYS_USER.ID=member_info.user_id)

语句改进

UPDATE member_info mpr
JOIN sys_user su ON mpr.user_id = su.id
SET mpr.dept_id = su.dept_id,mpr.dept_name = su.dept_name

如果只需要更新部分记录,添加 WHERE 条件:

UPDATE member_promoter_relation mpr
JOIN sys_user su ON mpr.user_id = su.id
SET mpr.dept_id = su.dept_id,mpr.dept_name = su.dept_name
WHERE mpr.dept_id IS NULL OR mpr.dept_name IS NULL  -- 示例条件

改进优势

  1. 性能更好:JOIN 操作通常比相关子查询更高效,特别是对于大表
  2. 可读性更强:JOIN 语法更清晰表达表之间的关系
  3. 单次扫描:原始语句可能对 sys_user 表扫描两次,改进后只扫描一次

如果 sys_user 表的 ID 字段是主键或有索引,这个查询会非常高效。

http://www.aitangshan.cn/news/569.html

相关文章:

  • DeepCompare文件深度对比软件:智能同步滚动与对比视图管理功能完全指南
  • 书单
  • 2025 款潘通色卡 PS/AI 插件推荐:解锁高效配色新体验
  • Dubbo源码—1.服务发布的主要流程
  • 剑指offer-20、包含min函数的栈
  • CF1456E XOR-ranges 题解
  • QueryCon 2019:osquery的重大转折点 - 技术治理与社区共建
  • 基于Transformer的百万级文本分类技术
  • 详细介绍:网络基础1-11综合实验(eNSP):vlan/DHCP/Web/HTTP/动态PAT/静态NAT
  • Omnissa Horizon Windows OS Optimization Tool 2506 - Windows 系统映像优化工具
  • docker 容器化部署 vLLM 启动大模型
  • App Linking 助力应用场景创新,操作步骤立省 60%
  • ChatGpt 5系列文章1——编码与智能体
  • Cisco Catalyst 9800-CL IOS XE 17.18.1 发布,新增功能简介
  • Cisco Modeling Labs (CML) 2.9.0 - 网络仿真工具
  • Omnissa App Volumes 4, version 2506 - 实时应用程序交付系统
  • Omnissa Dynamic Environment Manager 2506 - 个性化动态 Windows 桌面环境管理
  • AES 加密模式演进:从 ECB、CBC 到 GCM 的 C# 深度实践
  • Cisco Catalyst 9800 WLC IOS XE 17.18.1 发布,新增功能简介
  • 详细介绍:python办自动化--读取邮箱中特定的邮件,并下载特定的附件
  • 微软开源的 MCP 教程「GitHub 热点速览」
  • 题解:qoj10322 Matching Query
  • ZR Summer 2025 CD ACM暨 ZR Summer 2025 C 游记
  • flutter flutter_inappwebview插件里js上传调用相机和图库碰到的问题
  • ruoyi-cloud微服务docker部署
  • #dp#L 最多变的序列
  • idea系列问题
  • Infoblox推出革命性高级威胁防御方案,通过DNS层防护主动抵御AI驱动的复杂攻击
  • 电商交易-履约-库存中心业务模型设计
  • pyyzDay8