`

Mysql跨表删除总结

阅读更多

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

 

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

 

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

 

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

 

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

 

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

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

 

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语句:

 

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

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

 

本文为本人原创,同步发布到:http://outofmemory.cn/code-snippet/1385/Mysql-kuabiao-delete-summary

0
1
分享到:
评论

相关推荐

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

    本文主要总结了在MySQL中进行多表更新的不同SQL语句写法,适用于需要根据一张表中的数据来更新另一张表的情况。 首先,我们可以使用传统的`UPDATE`语句与两张表的简单联接(JOIN)来实现跨表更新。例如,假设有`...

    连接mysql sqlserver的两个数据库

    总结来说,连接MySQL和SQL Server的两个数据库涉及的关键点包括: 1. 使用JDBC驱动程序(如mysql-connector-java和sqljdbc)。 2. 在Java代码中创建并管理两个数据库的连接。 3. 编写SQL语句进行数据操作。 4. 使用...

    mysql教程详细总结

    MySQL教程详细总结 引言 MySQL是一款开源、免费的关系型数据库管理系统,被广泛应用于Web应用程序中,因其高效、稳定和易用性而受到青睐。本教程将深入探讨MySQL的各个方面,帮助初学者和进阶者全面理解其核心概念...

    mysql-实验一.docx

    3. 远程调用:JSON 用于远程调用,实现跨语言和跨平台的数据交换。 4. 返回前后端分离的数据:JSON 用于返回前后端分离的数据,实现数据的解耦合。 5. 开放的 API 接口:JSON 用于开放的 API 接口,实现数据的共享和...

    Mysql知识点总结.pdf

    Mysql知识点总结 1. 数据库基本术语:数据库是数据的集合,MySQL是一种数据库管理系统(DBMS),它使用SQL语言进行数据库的管理。 2. 查询: - 查询多列:使用SELECT语句可选取一个或多个列。 - 检索唯一值:...

    计算机二级《MySQL数据库程序设计》知识点总结.pdf

    以上知识点总结了MySQL数据库程序设计的基础和高级特性,涉及了SQL语句的编写、数据操作、表的维护、索引和视图的管理,以及全文搜索和存储引擎等高级概念。掌握了这些知识点,对于进行MySQL数据库设计和维护将...

    mysql基础只是总结

    ### MySQL基础知识总结 #### 一、初识MySQL与其它数据库对比 MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),以其高性能、可靠性和易用性而闻名。它支持多种操作系统,并且拥有丰富的功能和良好的社区...

    mysql数据库的超级详细总结

    ### MySQL数据库的超级详细总结 #### 一、MySQL基本概念 MySQL是一款广泛使用的开源关系型数据库管理系统(RDBMS),最初由瑞典的MySQL AB公司开发。该公司后来被Sun Microsystems收购,随后Sun Microsystems又被...

    c++封装跨平台mysql类

    总结一下,"c++封装跨平台mysql类"涉及到以下几个关键知识点: 1. C++面向对象编程,特别是类的封装和继承。 2. 跨平台编程,可能需要了解不同操作系统下的文件系统和网络API。 3. MySQL的C API,用于执行SQL命令和...

    mysql c api

    总结来说,MySQL C API是iOS开发中连接和操作MySQL数据库的关键工具,它提供了丰富的功能,使开发者能够灵活地处理各种数据库任务。通过理解和熟练运用这个API,开发者可以创建高效且可靠的数据库驱动的应用程序。

    MySQL5.56.zip

    总结,MySQL5.5是一个重要的版本,它的改进使得MySQL在性能、安全性和易用性上都有所提升。解压“MYSQL5.56.zip”文件,用户可以直接开始使用这个版本的MySQL,无需复杂的安装过程,为数据库管理和开发提供了便利。

    MySQL数据库管理器

    总结来说,MySQL数据库管理器是一个强大的工具,它为MySQL数据库的日常管理提供了便利,无论你是初学者还是经验丰富的开发者,都能从中受益。通过使用这款工具,你可以更加高效地进行数据库设计、数据操作和维护工作...

    mysql安装资料.zip

    例如,通过`mysql_secure_installation`命令,你可以删除匿名用户,禁止root远程登录,删除测试数据库,以及更新root用户的密码。 六、连接与使用MySQL 使用MySQL客户端工具,如MySQL Workbench,或者命令行工具`...

    sql和mysql jdbc包

    使用SQL语言,开发者可以执行诸如创建数据库、表,插入、更新、删除数据,以及执行复杂的查询和事务处理等操作。 MySQL则是一个轻量级、高性能的数据库,广泛应用于Web应用中。它以其开源、免费和跨平台的特性受到...

    Beginning MySQL Database Design and Optimization.pdf

    - 联邦表:跨服务器查询。 #### 五、高级主题 1. **触发器**:基于特定事件自动执行的数据库对象,用于实现复杂的业务逻辑。 2. **存储过程**:预先编译好的一组SQL语句集合,可以在一次调用中执行多个操作。 3. *...

    mysql-5.5.18-win32安装包及教程

    2. 表操作:学习创建、修改和删除表,以及如何使用`CREATE TABLE`、`ALTER TABLE`和`DROP TABLE`语句。 3. 数据插入与查询:掌握`INSERT INTO`、`SELECT`语句,进行数据的增、删、改、查操作。 4. 用户权限:理解...

Global site tag (gtag.js) - Google Analytics