MySql 跨表删除与更新

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 一、跨表删除       根据多个关联表删除表中的记录,SQL语句如下:       方式一:       DELETE t1.*, t2.*        FROM 表一 t1, 表二 t2        WHERE t1.

一、跨表删除

       根据多个关联表删除表中的记录,SQL语句如下:

       方式一:

       DELETE t1.*, t2.*
       FROM 表一 t1, 表二 t2
       WHERE t1.表一ID = t2.表二ID(注:该ID与表一的ID关联,表一ID为外键)
       AND t1.DATE(举例以日期为条件) < '2016-11-11'

       注:以上语句将删除表一、表二选定条件的记录

     

       方式二:

       DELETE t1.*, t2.*
       FROM 表一 t1

       INNER JOIN  表二 t2

       ON t1.表一ID = t2.表二ID(注:该ID与表一的ID关联,表一ID为外键)

       WHERE  t1.DATE(举例以日期为条件) < '2016-11-11'

       注:以上语句将删除表一、表二选定条件的记录

       (以上两种方式将删除表一、表二两张表相关的记录,如果你只想删除一张表的记录,如果你只需删除一张表中的记录你只需指定 DELETE 表一.*这样就只删除表一中的记录)


       跨表删除也可以使用left join,SQL如下:

       DELETE t1.*
       FROM 表一 t1
       LEFT JOIN 表二 t2
       ON t1.ID = t2.ID
       WHERE t2.TYPE is null


二、跨表更新

       根据多个关联表更新表中的记录,SQL语句如下:

       方式一:

       UPDATE 表一 t1, 表二 t2
       SET t1.price = t2.price+10
       WHERE t1.ID = t2.ID
       AND p.date < '2016-11-11'


       方式二:

       UPDATE  表一 t1
       INNER JOIN 表二 t2
       ON t1.ID = t2.ID
       SET t1.price = t2.price+10
       WHERE p.date < '2016-11-11'


       方式三:

       (使用left outer join来做多表update,比方说如果表二中没有产品价格记录的话,将表一的isDeleted字段置为1)

       UPDATE 表一 t1
       LEFT JOIN 表二 t2
       ON t1.ID = t2.ID
       SET t1.deleted = 1
       WHERE t2.IDIS null


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

       UPDATE 表一 t1
       INNER JOIN 表二 t2
       ON t1.ID = t2.ID
       SET t2.price = t2.price +10,
       p.更新时间= CURDATE()
       WHERE p.创建时间 < '2016-11-11'




相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
关系型数据库 MySQL Java
MySQL 巨坑:update 更新慎用影响行数做判断!!!
MySQL 巨坑:update 更新慎用影响行数做判断!!!
753 0
MySQL 巨坑:update 更新慎用影响行数做判断!!!
|
存储 运维 关系型数据库
头大了,Mysql写入数据十几秒后被自动删除了
事情是这样的,在公司内部新开发了一个功能还没有上线,目前部署在测试环境,Node服务会开启一个定时任务,每5分钟会处理好一部分数据写入到mysql数据库中。
186 0
头大了,Mysql写入数据十几秒后被自动删除了
|
关系型数据库 MySQL
mysql删除重复记录只保留一条
mysql删除重复记录只保留一条
93 0
|
SQL 关系型数据库 MySQL
删除 MySQL | 学习笔记
快速学习删除 MySQL.
删除 MySQL | 学习笔记
|
关系型数据库 MySQL
MySQL基础-删除/更新行为
添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。具体的删除/更新行为有以下几种:
155 0
|
关系型数据库 MySQL 索引
mysql更新varchar类型字段长度报错:ERROR 1074 (42000): Column length too big for column ‘value‘ (max = 21845);
mysql更新varchar类型字段长度报错:ERROR 1074 (42000): Column length too big for column ‘value‘ (max = 21845);
|
关系型数据库 MySQL
MySQL数据表不能修改、删除等操作,卡死、锁死情况的处理办法。
MySQL数据表不能修改、删除等操作,卡死、锁死情况的处理办法。
1583 0
|
关系型数据库 MySQL 数据库
【MySQL】MySQL命令总结 | 数据库与数据表的创建删除与查询
【MySQL】MySQL命令总结 | 数据库与数据表的创建删除与查询
160 0
|
SQL 算法 安全
【MySQL】数据库视图的介绍、作用、创建、查看、删除和修改(附练习题)
文章目录 1 视图的介绍与作用 2 视图的创建 3 视图的修改 4 视图的更新 5 视图的重命名与删除 6 视图的练习 6.1 数据准备 6.2 查询平均分最高的学校名称 写在最后
【MySQL】数据库视图的介绍、作用、创建、查看、删除和修改(附练习题)
|
关系型数据库 MySQL C#
【C#】【MySQL】【GridView】删除出现Parameter index is out of range
【C#】【MySQL】【GridView】删除出现Parameter index is out of range
92 0
【C#】【MySQL】【GridView】删除出现Parameter index is out of range