update inner join 使用

update inner join 使用假定我们有两张表 一张表为 Product 表存放产品信息 其中有产品价格列 Price 另外一张表是 ProductPrice 表 我们要将 ProductPrice 表中的价格字段 Price 更新为 Price 表中价格字段的 80 nbsp 在 Mysql 中我们有几种手段可以做到这一点 一种是 updatetable1 table2ts 的方式 nbsp 复制代码代码如下 UPDATEp

假定我们有两张表,一张表为Product表存放产品信息,其中有产品价格列Price;另外一张表是ProductPrice表,我们要将ProductPrice表中的价格字段Price更新为Price表中价格字段的80%。 

在Mysql中我们有几种手段可以做到这一点,一种是update table1 t1, table2 ts …的方式: 

复制代码代码如下:

UPDATE product p, productPrice pp 
SET pp.price = pp.price * 0.8 
WHERE p.productId = pp.productId 
AND p.dateCreated < ‘2004-01-01’ 






另外一种方法是使用inner join然后更新: 

复制代码代码如下:

UPDATE product p 
INNER JOIN productPrice pp 
ON p.productId = pp.productId 
SET pp.price = pp.price * 0.8 
WHERE p.dateCreated < ‘2004-01-01’ 







另外我们也可以使用left outer join来做多表update,比方说如果ProductPrice表中没有产品价格记录的话,将Product表的isDeleted字段置为1,如下sql语句: 

复制代码代码如下:

UPDATE product p 
LEFT JOIN productPrice pp 
ON p.productId = pp.productId 
SET p.deleted = 1 
WHERE pp.productId IS null 







另外,上面的几个例子都是两张表之间做关联,但是只更新一张表中的记录,其实是可以同时更新两张表的,如下sql: 

复制代码代码如下:

UPDATE product p 
INNER JOIN productPrice pp 
ON p.productId = pp.productId 
SET pp.price = pp.price * 0.8, 
p.dateUpdate = CURDATE() 
WHERE p.dateCreated < ‘2004-01-01’ 








两张表做关联,更新了ProductPrice表的price字段和Product表字段的dateUpdate两个字段。








版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/231269.html原文链接:https://javaforall.net

(0)
上一篇 2026年1月18日 上午8:01
下一篇 2026年1月18日 上午8:22


相关推荐

  • 小强学Python+OpenCV之-1.3绘图

    小强学Python+OpenCV之-1.3绘图

    2022年3月3日
    54
  • 中控H10考勤机管理员密码激活成功教程

    中控H10考勤机管理员密码激活成功教程中控 H10 考勤机管理员密码激活成功教程标签 考勤机管理员密码激活成功教程 1 管理员激活成功教程方式首先看考勤机上的时间 比如显示为 20 24 去掉冒号为 2024 管理员密码为 9999 2024 2 9999 2024 2 长按 M OK 键 进入管理员界面 输入工号 8888 按 M OK 键 输入上面的密码 即可进入管理页面注 密码每分钟都不一样 必须在一分钟内操作

    2026年3月18日
    1
  • linux ss 命令用法说明

    linux ss 命令用法说明

    2022年2月15日
    73
  • 腾讯回应小龙虾创始人指责抄袭 否认恶意爬取(2)

    腾讯回应小龙虾创始人指责抄袭 否认恶意爬取(2)

    2026年3月14日
    2
  • jps命令显示jvm进程

    jps命令显示jvm进程用来查看基于HotSpot JVM里面所有进程的具体状态, 包括进程ID,进程启动的路径等等。与unix上的ps类似,用来显示本地有权限的java进程,可以查看本地运行着几个java程序,并显示他们的进程号。使用jps时,不需要传递进程号做为参数。Jps也可以显示远程系统上的JAVA进程,这需要远程服务上开启了jstat服务,以及RMI注及服务,不过常用都是对本对的JAVA进程的查看。

    2026年1月31日
    5
  • goland2021激活码(注册激活)

    (goland2021激活码)2021最新分享一个能用的的激活码出来,希望能帮到需要激活的朋友。目前这个是能用的,但是用的人多了之后也会失效,会不定时更新的,大家持续关注此网站~https://javaforall.net/100143.htmlIntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,上面是详细链接哦~3Y…

    2022年3月30日
    1.4K

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号