`

mysql跨表删除

 
阅读更多
前几天写了Mysql跨表更新的一篇总结,今天我们看下跨表删除。

在Mysql4.0之后,mysql开始支持跨表delete。

Mysql可以在一个sql语句中同时删除多表记录,也可以根据多个表之间的关系来删除某一个表中的记录。

假定我们有两张表:Product表和ProductPrice表。前者存在Product的基本信息,后者存在Product的价格。

第一种跨表删除的方式是不用join,在delete时指定用半角逗号分隔多个表来删除,如下sql语句:

SQL code

DELETE p.*, pp.*
FROM product p, productPrice pp
WHERE p.productId = pp.productId
AND p.created < '2004-01-01'


第二种跨表删除的方式是使用inner join在join中指定两表之间的关联关系,如下sql语句:
SQL code

DELETE p.*, pp.*
FROM product p
INNER JOIN productPrice pp
ON p.productId = pp.productId
WHERE p.created < '2004-01-01'


注意,跨表删除不必删除所有表的数据,上面的sql语句表会同时删除Product和ProductPrice两张表中的数据,但是你可以指定 DELETE product.*从而只删除product表中的记录,而不处理ProductPrice表中的记录。

跨表删除也可以使用left join,例如我们要删除所有在ProductPrice表中没有记录的Product表记录。如下sql语句:

SQL code

DELETE p.*
FROM product p
LEFT JOIN productPrice pp
ON p.productId = pp.productId
WHERE pp.productId is null

跨表删除很有用,在需要的时候就用它吧。欢迎阅读另外一篇关于跨表更新的介绍文章
分享到:
评论

相关推荐

    mysql支持跨表delete删除多表记录

    MySQL跨表删除功能是在Mysql 4.0版本后引入的,这允许用户在一个SQL语句中删除多个相关表的数据,极大地提高了数据管理的效率。本文将深入探讨两种主要的跨表删除方式,并提供示例代码,以帮助理解如何安全地进行...

    省市区数据表mysql

    查询时,可以利用JOIN操作来获取跨表的省市区信息,如`SELECT p.province_name, c.city_name, a.area_name FROM provinces p JOIN cities c ON p.id = c.province_id JOIN areas a ON c.id = a.city_id`,这条查询...

    Mysql跨表更新 多表update sql语句总结

    MySQL中的跨表更新是数据库操作中的常见需求,特别是在处理关联数据时。本文主要总结了在MySQL中进行多表更新的不同SQL语句写法,适用于需要根据一张表中的数据来更新另一张表的情况。 首先,我们可以使用传统的`...

    创建mysql表分区的方法

    【MySQL 表分区详解】 MySQL 表分区是一种高级的数据组织技术,它允许将大型表分成较小、更易管理和处理的部分。这种技术对于处理海量数据,尤其是超过亿级别的数据集非常有效,可以显著提升查询性能和数据管理效率...

    连接mysql sqlserver的两个数据库

    在IT行业中,数据库管理系统(DBMS)是存储和管理数据的核心工具。MySQL和SQL Server分别是两种广泛应用的关系型...了解这些知识点后,你将能够有效地在MySQL和SQL Server之间建立连接,满足各种跨平台数据处理的需求。

    mysql 跨表查询、更新、删除示例

    下面来谈谈跨表插入,更新和删除 首先讨论的是跨表查询: insert into `table_A` select * from `table_B`;注意*代表全部插入。 接着又讨论关于跨表更新 代码如下: update `table_A`, `table_B` set `table_A`.`name...

    MYSQL删除表中的指定ID数据

    您可能感兴趣的文章:完全卸载mysql(停止服务、卸载相关程序、删除注册表mysql表的清空、删除和修改操作详解mysql支持跨表delete删除多表记录MySQL删除表数据的方法MySQL实现快速删除所有表而不删除数据库的方法...

    C++Mysql8.0数据库跨平台编程实战.zip

    《C++与MySQL8.0跨平台数据库编程实战》 在现代软件开发中,数据库的使用至关重要,尤其是在大型系统中。本课程聚焦于C++与MySQL8.0的结合,教你如何在不同的操作系统环境下,如Windows和Ubuntu,进行高效、稳定的...

    windows版mysql安装包-mysql5-mysql-5.5.zip

    - **安全设置**: 使用“mysql_secure_installation”脚本来加强安全性,例如删除匿名用户,禁用远程root登录等。 4. **启动和管理MySQL服务** - **启动/停止服务**: 通过Windows服务管理器或命令行...

    MySQL的表分区详解

    MySQL的表分区是一种数据库优化策略,它将一个大表分解为多个较小的、更易管理和查询的部分,以提高数据检索速度和数据库性能。这一技术自MySQL 5.1版本开始被广泛支持。表分区主要应用于大数据量的场景,通过合理...

    MySQL教程.docx

    * MySQL 删除被其它表关联的主表 * MySQL 查看表结构 * MySQL 数据表添加字段 * SQL 语句对应的文件操作 知识点8:MySQL 约束、函数和运算符 * MySQL 约束概述 * MySQL 主键 * MySQL 主键自增长 * MySQL 外键约束 ...

    MySQL多表操作说明1

    MySQL是世界上最流行的开源关系型数据库管理...总之,理解和掌握这些MySQL的多表操作及字符编码知识对于数据库管理和开发至关重要,它们有助于保证数据的完整性和查询的灵活性,同时也能解决跨编码环境的数据交互问题。

    MYSQL必会必知

    MySQL支持跨多个操作系统运行,并且由于其高性能、高可靠性和易用性,被广泛应用于互联网上的数据管理任务。 接下来,我们将对MySQL的基础知识点进行详细梳理: 1. MySQL的安装和配置 - 如何在不同操作系统上安装...

    mysql+mysql可视化工具

    MySQL的可视化工具则为数据库的管理和操作提供了更为直观和友好的界面,使得非程序员或者数据库新手也能方便地进行数据查询、备份、恢复以及表结构的管理。 首先,我们要理解MySQL的基础知识。MySQL采用SQL(结构化...

Global site tag (gtag.js) - Google Analytics