MySql 跨表删除与更新

简介: 一、跨表删除       根据多个关联表删除表中的记录,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'




相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
关系型数据库 MySQL 数据库
docker MySQL删除数据库时的错误(errno: 39)
docker MySQL删除数据库时的错误(errno: 39)
339 0
|
存储 关系型数据库 MySQL
mysql添加和删除数据库以及数据类型
mysql添加和删除数据库以及数据类型
310 1
|
关系型数据库 MySQL Java
MySQL 巨坑:update 更新慎用影响行数做判断!!!
MySQL 巨坑:update 更新慎用影响行数做判断!!!
2616 0
MySQL 巨坑:update 更新慎用影响行数做判断!!!
|
关系型数据库 MySQL PHP
MySQL 删除数据库
MySQL 删除数据库
|
存储 运维 关系型数据库
头大了,Mysql写入数据十几秒后被自动删除了
事情是这样的,在公司内部新开发了一个功能还没有上线,目前部署在测试环境,Node服务会开启一个定时任务,每5分钟会处理好一部分数据写入到mysql数据库中。
409 0
头大了,Mysql写入数据十几秒后被自动删除了
|
SQL 关系型数据库 MySQL
删除 MySQL | 学习笔记
快速学习删除 MySQL.
261 0
删除 MySQL | 学习笔记
|
关系型数据库 MySQL
MySQL基础-删除/更新行为
添加了外键之后,再删除父表数据时产生的约束行为,我们就称为删除/更新行为。具体的删除/更新行为有以下几种:
432 0
|
关系型数据库 MySQL 数据库
【MySQL】MySQL命令总结 | 数据库与数据表的创建删除与查询
【MySQL】MySQL命令总结 | 数据库与数据表的创建删除与查询
399 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
343 0
【C#】【MySQL】【GridView】删除出现Parameter index is out of range

推荐镜像

更多