`
bjmike
  • 浏览: 283108 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

MYSQL中delete多表关联删除数据

 
阅读更多
DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释:
1    delete from t1 where 条件
2    delete t1 from t1 where 条件
3    delete t1 from t1,t2 where 条件
4    delete t1,t2 from t1,t2 where 条件


前 3者是可行的,第4者不可行。
也就是简单用delete语句无法进行多表删除数据操作,不过可以建立级联删除,在两个表之间建立级联删除关系,则可以实现删除一个表的数据时,同时删除另一个表中相关的数据。

1、从数据表t1中把那些id值在数据表t2里有匹配的记录全删除 掉1    DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或 DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id


2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉1    DELETE t1 FROM t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL 或 DELETE FROM t1,USING t1 LEFT JOIN T2 ON t1.id=t2.id WHERE t2.id IS NULL


3、 从两个表中找出相同记录的数据并把两个表中的数据都删除掉1    DELETE t1,t2 from t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25


注意此处的delete t1,t2 from 中的t1,t2不能是别名

如:1    delete t1,t2 from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25


在数据里面执行是错误的(MYSQL 版本不小于5.0在5.0中是可以的)

上述语句改 写成1    delete table_name,table2_name from table_name as t1 left join table2_name as t2 on t1.id=t2.id where table_name.id=25


在数据里面执行是错误的(MYSQL 版本小于5.0在5.0中是可以的)

转载请注明:PHP学习网 » MYSQL中delete多表关联删除数
分享到:
评论

相关推荐

    mysql delete 多表连接删除功能

    MySQL中的`DELETE`语句是用于从数据库中删除数据行的关键命令。在处理单个表时,`DELETE`语句的使用相对简单,而在多表环境中进行连接删除时,其复杂性和潜在影响则显著增加。这里我们将深入探讨`DELETE`语句的各种...

    mysql 一条语句删除多表数据

    在MySQL数据库管理中,高效地删除多表数据是优化数据库操作的重要方面,特别是在处理大量关联数据时。"mysql 一条语句删除多表" 的主题就是关于如何通过单个SQL语句来删除关联的多个表的数据,从而节省数据库连接...

    mysql删除数据记录PPT

    在视图中使用`DELETE`语句删除数据时,需要额外注意,因为视图不是实际存储数据的表,而是基于一个或多个表的查询结果。在某些情况下,从视图中删除可能不被允许,或者需要满足特定的条件,如定义了`ON DELETE`规则...

    如何实现多数据表关联呢?Delphi的方法实例..rar

    在多表关联中,可以创建多个TDataSource,一个对应于每个数据表,然后在它们之间建立链接。 7. **数据绑定**:Delphi的数据绑定机制使得界面上的控件可以直接显示和编辑TDataSet中的数据。在多表关联的情况下,通过...

    MySQL中利用外键实现级联删除、更新

    在 MySQL 中,外键是指在一个表中的一列或多列,引用另一个表中的主键或唯一索引。外键可以强制实施数据的一致性和完整性,使得数据更加可靠。外键在 MySQL 中的实现主要是通过 InnoDB 存储引擎来实现的。只有 ...

    mysql数据库实验报告 数据表的操作

    2. 删除数据:使用`DELETE FROM`命令删除满足特定条件的记录。 3. 修改数据:使用`UPDATE`命令更新表中已存在的记录。 五、表联系的创建与修改 1. 多对多关系:在`TMS_student`和`TMS_course`之间创建`TMS_sc`表,...

    MySQL数据库:数据记录的删除.pptx

    本节主要介绍了两种删除数据记录的方法,以及一个特殊的情况——从多表中同时删除数据。 首先,从单个表中删除数据记录的语法是`DELETE FROM 表名 [WHERE 条件]`。如果省略了`WHERE`子句,将删除表中的所有行。例如...

    MySQL删除表的时候忽略外键约束的简单实现

    当尝试删除一个表而该表包含其他表所依赖的字段时,MySQL会抛出错误1217(23000),提示“Cannot delete or update a parent row: a foreign key constraint fails”。为了解决这个问题,我们可以利用MySQL中的一个...

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

    不使用JOIN的方式是指直接在`DELETE`语句中通过逗号分隔列出要删除数据的表。以下是一个示例: ```sql DELETE p.*, pp.* FROM product p, productPrice pp WHERE p.productId = pp.productId AND p.created `...

    MySQL的删除步骤

    MySQL是世界上最流行的开源关系型数据库管理系统之一,其删除步骤涵盖了从简单到复杂的多个层次,包括数据、表、数据库以及在操作系统中的彻底卸载。这里我们将深入探讨这些删除过程,并特别关注如何安全地处理...

    mysql各种语句多表查询+ mysql视图 mysql数据库管理+ select语句+ 创建

    在本教程中,我们将深入探讨MySQL中的多种查询语句,包括多表查询、视图、数据库管理、SELECT语句以及创建表等核心概念。 首先,让我们从多表查询开始。在实际应用中,往往需要从多个相关表中获取信息,这就需要...

    MSserver自关联表的级联删除

    在SQL Server中,自关联表是指一个表中的某一列引用了该表的主键作为外键,形成一种树形结构,常用于表示层次关系的数据,如组织架构、目录树等。在这样的表中,级联删除是确保数据完整性的一个重要功能,即删除某条...

    openstack删除数据库中instance关联表内容的方法

    ### OpenStack删除数据库中Instance关联表内容的方法 #### 背景介绍 OpenStack作为一款开源的云操作系统,被广泛应用于构建和管理大规模计算、存储和网络资源池。在使用OpenStack的过程中,用户经常会遇到创建...

    mysql 删除操作(delete+TRUNCATE)

    DELETE语句是最常用的删除数据的方式,它允许根据指定的条件删除表中的行。基本语法如下: 单表删除: ```sql DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] ``` 多表...

    创建mysql数据库视图

    在MySQL数据库中,视图(View)是一种虚拟表,它是由SQL查询语句定义的,显示来自一个或多个表的数据。视图并不实际存储数据,而是提供了一个数据的逻辑视图,可以简化复杂的查询,保护数据隐私,以及提供了一种抽象...

    mysql中多表删除其中ID相同记录的方法

    在MySQL数据库中,多表删除是一项常见的操作,特别是在数据整理或清理时,可能需要删除多个表中具有相同ID的记录。传统的SQL语法可能只允许单表删除,但在MySQL 4.0及以上版本,引入了对多表删除的支持,使得这个...

    MySQL DELETE语法使用详细解析

    MySQL DELETE语句是数据库管理中用于删除数据表中数据的关键命令,它允许用户根据特定条件删除一行或多行数据。本文将深入解析其语法和使用注意事项。 首先,我们来看单表删除语法。在MySQL中,DELETE语句的基本...

    MySQL典型示例.zip

    可能包括CREATE TABLE语句来定义表结构,INSERT INTO语句来插入数据,SELECT语句来进行查询,UPDATE和DELETE语句来修改和删除数据。此外,也可能包含ALTER TABLE语句用于修改表结构,或是JOIN操作来组合多个表的数据...

Global site tag (gtag.js) - Google Analytics