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 条件
category(栏目信息表)和news(新闻数据表)。

category中的id(栏目编号)字段作为该表的主键(primary key).唯一标识了一个栏目的信息。
news 中的id字段作为该表的主键(primary key).唯一标识了一个栏目的信息。

category_id(栏目编号)字段与category表的id字段相关联。

1.SQL删除语句

代码如下 复制代码

delete category,news from category left join news on category.id = news.category_id

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=25Unknown table 'a' in MULTI DELETE的解决办法

在存储过程中,调用:

delete a from db1.tb1 a, db2.tb2 b where a.col1 = b.col1 and a.col2 = b.col2;

出现题目中的错误,原因如下:

在mysql中多表联合删除时,表别名只能在sql中表关联部分声明。我们应该避免不是表关联部分声明别名,因为这产生歧义的sql,从而产生不是期望的结果,例如在错误的表中删除行,举个例子来说:

DELETE t1 AS a2 FROM t1 AS a1 INNER JOIN t2 AS a2;

对于多个表的删除,表的列表中提到的表别名的引用,使用默认数据库,除非已经明确地指定了一个数据库。例如,如果默认数据库是db1,下面的语句将不会工作,因为不确定的别名a2被认为已经有了db1:

DELETE a1, a2 FROM db1.t1 AS a1 INNER JOIN db2.t2 AS a2
WHERE a1.id=a2.id;

除了默认数据库外,为了正确地匹配表的别名,我们必须明确地指定正确的数据库的名字,

DELETE a1, db2.a2 FROM db1.t1 AS a1 INNER JOIN db2.t2 AS a2
WHERE a1.id=a2.id;

根据上述理论,我的sql应该这样写:

> delete db1.a from db1.tb1 a, db2.tb2 b where a.col1 = b.col1 and
> a.col2 = b.col2;

还有需要注意的是:

1.如果你为一个表声明了别名,当你指向这个表的时候,就必须使用这个别名,例如:

– 正确的写法:

DELETE t1 FROM test AS t1, test2 WHERE ...

– 错误的写法:
DELETE test FROM test AS t1, test2 WHERE ...
2.在多个表联合删除时,不能使用order by 或limit,而单个表的删除时就没有这个限制。

3.当前,我们还不能在删除表的时候,在子查询中select from相同的表。

小小菜鸟一枚

MySQL多表关联数据同时删除sql语句相关推荐

  1. mysql 删除语句多表关联_MySQL多表关联数据同时删除sql语句

    MySQL多表关联数据同时删除sql语句 有需要的朋友可参考. DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释: 代码如下 1 delete from t1 wher ...

  2. mysql 修改表名的方法:sql语句

    在使用mysql时,经常遇到表名不符合规范或标准,但是表里已经有大量的数据了,如何保留数据,只更改表名呢? 可以通过建一个相同的表结构的表,把原来的数据导入到新表中,但是这样视乎很麻烦. 能否简单使用 ...

  3. 学生选课在MYSQL创建表_学生选课数据库SQL语句练习题

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  4. mysql 单表 子查询_MySQL基本SQL语句之单表查询、多表查询和子查询 | 旺旺知识库...

    一.简单查询: 基本语法: SELECT * FROM tb_name;查询全部 SELECT field1,field2 FROM tb_name; 投影 SELECT [DISTINCT] * F ...

  5. jpa多表联查动态_jpa多表关联动态查询(自定义sql语句)

    项目中,jpa对于简单的数据库操作很方便,但如果多表关联动态查询时,需要自己去写SQL语句拼接查询条件,以下为本人学习的例子. 类似于这种多条件动态查询: 项目用的是springboot 2.1.0. ...

  6. MySql导入、导出数据解决方案(SQL语句)

    导入数据库(命令行方式): 1,将要导入的.sql文件移至bin文件下,这样的路径比较方便 2,同上面导出的第1步 3,进入MySQL:mysql -u 用户名 -p 如我输入的命令行:mysql - ...

  7. MySQL查看表中的索引的SQL语句

    show index from student_info;        (student_info 是表名)

  8. mysql delete 表关联删除数据_MYSQL中delete删除多表数据与删除关联数据

    在mysql中删除数据方法有很多种,最常用的是使用delete来删除记录,下面我来介绍delete删除单条记 录与删除多表关联数据的一些简单实例. 1.delete from t1 where 条件 ...

  9. 命令行客户端MySQL基本命令的使用(登录、登出、数据库操作的SQL语句、表结构的SQL语句、表数据操作的SQL语句)

    1. 登录和登出数据库 登录数据库: 输入下面命令: mysql -uroot -p 说明: -u 后面是登录的用户名  [写成-u root也是可以的] -p 后面是登录密码, 如果不填写, 回车之 ...

最新文章

  1. 中国科学:拟南芥二半萜类化合物调控根系微生物组
  2. python之初接触
  3. 013 Android锁机病毒分析
  4. js实现鼠标拖拽功能基本思路
  5. 高校计算机课程建设研讨会通知,常熟理工学院新闻网
  6. c语言网页版在线编译器_C语言编译器IDEapp下载-C语言编译器IDE官方版下载v1.5.1 安卓版...
  7. 实用必备xp框架模块_两款实用工具类软件,是你的日常必备!
  8. python输入错误提示再次输入_Python实现用户登录并且输入错误三次后锁定该用户...
  9. python可以操作word吗_python实现在windows下操作word的方法
  10. 栈、堆、静态存储区的三分天下
  11. Sql Server 存储过程分页大全(2005,2000)
  12. python语言是 创造的_1.python简介
  13. Cocos Creator 实现大厅+子游戏模式
  14. Pytorch将数据集划分为训练集、验证集和测试集
  15. Android无线蓝牙开发总结
  16. 50本关于软件测试的书籍
  17. Codeforces Round #828 (Div. 3)-赛后总结
  18. Celery在Django下安装配置
  19. 多任务多目标 CTR 预估技术
  20. 基于微信小程序电商平台

热门文章

  1. android P lightservice 移植调试增加状态指示灯 保存状态到设置开关 --驱动 hal lib HIDL service framework settingsprovide
  2. 情感分析中处理否定问题的伪代码
  3. 关于WSDL和UDDI的一些了解
  4. 【ML】探索性数据分析 (EDA)
  5. 华为mate10用的android版本,华为Mate10搭载安卓8.0系统 详细参数配置曝光
  6. 面向对象分析与设计-——实验一问题陈述+词汇表(健身房系统)
  7. linux模块移植到freertos,opus移植到freertos系统
  8. 微信分享详细步骤--java版
  9. Ambari-2.7.5整合HDP-3.1.5集群完整安装记录(内附安Ambari-2.7.5 + HDP-3.1.5安装包下载地址)
  10. Python软件编程等级考试三级——20210620