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

MySQL 和 SQL Server 中的连表更新 UPDATE JOIN 写法比较

MySQL 和 SQL Server 中的连表更新 UPDATE JOIN 写法比较

  • 一、前言
    • 1. MySQL 写法
      • 1.1 解释
    • 2. SQL Server 写法
      • 2.1 解释
  • 二、总结


一、前言

在关系型数据库管理系统(RDBMS)中,使用 UPDATE 语句进行表格更新是非常常见的操作。特别是当需要根据另一个表格的数据来更新目标表格时,使用 JOIN 是一种有效的方法。本文将比较 MySQL 和 SQL Server 中使用 UPDATE JOIN 的写法,并详细说明它们的语法和用法。

1. MySQL 写法

MySQL 使用 UPDATE ... JOIN ... SET ... 语法来实现表格联接更新。以下是一个示例:

UPDATE ladder_control t1
JOIN hga_mpwh t2 ON t1.fjh = t2.mpbm
SET t1.room_number = t2.id
WHERE t1.room_number IS NULL;

1.1 解释

  • ladder_controlhga_mpwh 是两个表格。
  • UPDATE ladder_control t1 指定要更新的目标表格,并用 t1 作为别名。
  • JOIN hga_mpwh t2 ON t1.fjh = t2.mpbm 使用 INNER JOIN 将 ladder_control 表格和 hga_mpwh 表格联接,条件是 t1.fjh = t2.mpbm
  • SET t1.room_number = t2.id 指定了更新操作,将 ladder_control 表格中的 room_number 列更新为 hga_mpwh 表格中对应的 id 列。
  • WHERE t1.room_number IS NULL 是一个过滤条件,仅当 ladder_control 表格中的 room_number 为空时才执行更新操作。

2. SQL Server 写法

SQL Server 使用 UPDATE ... FROM ... SET ... WHERE ... 语法来实现表格联接更新。以下是相应的示例:

UPDATE t1
SET t1.room_number = t2.id
FROM ladder_control t1
JOIN hga_mpwh t2 ON t1.fjh = t2.mpbm
WHERE t1.room_number IS NULL;

2.1 解释

  • ladder_controlhga_mpwh 同样是两个表格。
  • UPDATE t1 指定要更新的目标表格 t1,这里不需要使用别名。
  • FROM ladder_control t1 JOIN hga_mpwh t2 ON t1.fjh = t2.mpbm 使用 INNER JOIN 将 ladder_control 表格和 hga_mpwh 表格联接,条件是 t1.fjh = t2.mpbm
  • SET t1.room_number = t2.id 指定了更新操作,将 ladder_control 表格中的 room_number 列更新为 hga_mpwh 表格中对应的 id 列。
  • WHERE t1.room_number IS NULL 是一个过滤条件,仅当 ladder_control 表格中的 room_number 为空时才执行更新操作。

二、总结

无论是在 MySQL 还是 SQL Server 中,通过使用 JOIN 可以有效地根据另一个表格的数据更新目标表格的内容。虽然两者的语法有细微差别,但基本的操作逻辑和语义是相似的。熟悉这些语法和用法将帮助你更加灵活地操作数据库,并有效地处理数据更新任务。

希望本文能够帮助你理解 MySQL 和 SQL Server 中 UPDATE JOIN 的写法和用法!

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Webshell管理工具:AntSword(中国蚁剑)
  • CentOS怎么关闭自动锁屏?
  • 【学一点儿前端】本地或jenkins打包报错:getaddrinfo ENOTFOUND registry.nlark.com.
  • Docker学习与实战
  • SpringSecurity如何正确的设置白名单
  • MySQL中多表查询之外连接
  • 网络基础之(11)优秀学习资料
  • Linux - 进程的概念、状态、僵尸进程、孤儿进程及进程优先级
  • 蓝桥杯 2024 年第十五届省赛真题 —— 最大异或结点
  • Linux系统编程——生产者消费者模型
  • python基础---2.流程控制及函数
  • 2024Summer周报三
  • nodejs - express 学习笔记
  • 【Qt 】JSON 数据格式详解
  • 【传知代码】智慧医疗:纹理特征VS卷积特征(论文复现)
  • 《深入 React 技术栈》
  • 【comparator, comparable】小总结
  • 08.Android之View事件问题
  • 0x05 Python数据分析,Anaconda八斩刀
  • 4个实用的微服务测试策略
  • IP路由与转发
  • Java-详解HashMap
  • jquery ajax学习笔记
  • KMP算法及优化
  • Linux各目录及每个目录的详细介绍
  • Markdown 语法简单说明
  • Python 基础起步 (十) 什么叫函数?
  • sessionStorage和localStorage
  • Wamp集成环境 添加PHP的新版本
  • 那些被忽略的 JavaScript 数组方法细节
  • 强力优化Rancher k8s中国区的使用体验
  • 融云开发漫谈:你是否了解Go语言并发编程的第一要义?
  • 携程小程序初体验
  • 一道闭包题引发的思考
  • 不要一棍子打翻所有黑盒模型,其实可以让它们发挥作用 ...
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​补​充​经​纬​恒​润​一​面​
  • #### golang中【堆】的使用及底层 ####
  • (10)STL算法之搜索(二) 二分查找
  • (二)linux使用docker容器运行mysql
  • (排序详解之 堆排序)
  • (三)终结任务
  • (十三)Flask之特殊装饰器详解
  • (数据结构)顺序表的定义
  • (四)JPA - JQPL 实现增删改查
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (转载)PyTorch代码规范最佳实践和样式指南
  • (自用)gtest单元测试
  • .NET 将混合了多个不同平台(Windows Mac Linux)的文件 目录的路径格式化成同一个平台下的路径
  • .net操作Excel出错解决
  • .net的socket示例
  • .NET构架之我见
  • .net通过类组装数据转换为json并且传递给对方接口
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually