文档章节

delete表1条件是另一个表中的数据,多表连接删除

mickelfeng
 mickelfeng
发布于 2017/06/03 14:24
字数 509
阅读 16
收藏 0
点赞 0
评论 0

数据库中有两张表。

DELETE cdb_posts,cdb_threads FROM cdb_posts ,cdb_threads where  cdb_threads.displayorder=-1 and cdb_posts.tid=cdb_threads.tid 

 DELETE  FROM cdb_posts  where tid in ( select tid from cdb_threads where  cdb_threads.displayorder=-1);

 delete from cdb_threads where  cdb_threads.displayorder=-1

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里有匹配的记录全删除 掉

DELETE t1 FROM t1,t2 WHERE t1.id=t2.id 或 DELETE FROM t1 USING t1,t2 WHERE t1.id=t2.id

2、从数据表t1里在数据表t2里没有匹配的记录查找出来并删除掉

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、 从两个表中找出相同记录的数据并把两个表中的数据都删除掉

DELETE t1,t2 from t1 LEFT JOIN t2 ON t1.id=t2.id WHERE t1.id=25

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

如: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中是可以的)

上述语句改 写成
 

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中是可以的)

© 著作权归作者所有

共有 人打赏支持
mickelfeng

mickelfeng

粉丝 226
博文 963
码字总数 548356
作品 0
成都
高级程序员
MySQL(十二)DML数据的增删改

一、DML语言 数据操作语言: 插入:insert 修改:update 删除:delete 二、插入语句insert 2.1、方式一 语法:insert into 表名(字段名,...) values(值,...); 特点: 1、要求值的类型和字段的...

leeqico ⋅ 05/29 ⋅ 0

第一部分 数据库之SQL语句

注:1.mysql是一种关系型数据库 2.大小写不敏感 3.字符串用单引号,若字符串里有单引号,则可以用两个单引号表示一个单引号 ‘assad’’a‘表示 assad'a 一、数据库概述 数据:数据库中存储的...

孙浩j ⋅ 2017/11/29 ⋅ 0

Sqlite之外键约束跟内外联表

SQLite SQLite是一种嵌入式数据库,小型高效,值得移动开发者去学习利用 当然性能要去不高可以使用apple的coreData面向对象操作关系型数据库技术 —— 百度百科 首先我会建两个表1.t_person2.t...

MrBryant24 ⋅ 2014/04/23 ⋅ 1

Mysql数据库基本操作

一、MySql数据库表操作 1、操作数据库 创建数据库:create database 数据库名; 删除数据库:drop database 数据库名; 修改数据库编码格式:alter database 数据库名 character set 要修改的字...

走了丶 ⋅ 2017/10/20 ⋅ 0

dml--数据操控语句

#插入语句 #INSERT INTO tablename (field1, filed2) VALUES(value1, value2); INSERT INTO EMP(, , ) VALUES('DY', '2015-12-25', '2000'); #多条插入 INSERT INTO EMP(, , ) VALUES('dd',......

xbuding ⋅ 2016/04/26 ⋅ 0

重温——RDBMS

第一章 关系型数据库管理系统(relational database managerment system简称RDBMS) 本章重点:理解关系型数据库的基本概念 理解数据库管理系统管理的工作原理 熟悉结构化查询语言及其分类...

鲁雯雪 ⋅ 2014/07/09 ⋅ 4

oracle-merge用法详解

转自 http://blog.chinaunix.net/u/12457/showart_346642.html oracle-merge用法详解 Oracle9i引入了MERGE命令,你能够在一个SQL语句中对一个表同时执行inserts和updates操作. MERGE命令从一个...

晨曦之光 ⋅ 2012/04/25 ⋅ 0

T-SQL语句基础

数据类型 int 整型,存储整数占4字节 bit 整型,取值0 1 null(空) 只有两种可能Yes and No float 表示大致数值,占8字节空间 date 日期,占3字节空间 time 表示某个时间,占5字节空间 date...

JianYua ⋅ 2017/07/12 ⋅ 0

MySql的基本操作以及以后开发经常使用的常用指令

第一章:数据类型和操作数据表 MySQL语句的规范 (1):关键字与函数名称全部大写 (2):数据库名称,表名称,字段名称全部小写 (3):SQL语句必须以分号结尾 1:命令行模式启动mysql服务 net start ...

别叫小伙 ⋅ 2016/09/25 ⋅ 0

PythonWeb全栈工程师必备技能之

emmm...接下来还有... (1)数据库的CURD: --基本使用: 1.选择数据库: use 数据库名称; mysql> use test; Database changed 2.创建数据库: create database 数据库名称; mysql> create d...

棋帅小七 ⋅ 05/23 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 8分钟前 ⋅ 1

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 32分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 37分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部