文档章节

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

mickelfeng
 mickelfeng
发布于 2017/06/03 14:24
字数 509
阅读 19
收藏 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

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

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

leeqico
05/29
0
0
Sqlite之外键约束跟内外联表

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

MrBryant24
2014/04/23
0
1
第一部分 数据库之SQL语句

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

孙浩j
2017/11/29
0
0
MySQL/MariaDB基础及简单SQL语句

MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。 在Linux操作系统内核中提供了MySQL或MariaDB的rpm包,CentOS6...

sherlockR
07/25
0
0
Mysql数据库基本操作

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

走了丶
2017/10/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

windbg调试C源码级驱动

联机方式不多说了。我博客里有,英文的。 windbg联机文档 https://docs.microsoft.com/zh-cn/windows-hardware/drivers/debugger/debug-universal-drivers---step-by-step-lab--echo-kernel......

simpower
31分钟前
0
0
redis快照和AOF简介

数据持久化到硬盘:一是快照(snapshotting),二是只追加文件(append-only file AOF) 快照 核心原理:redis某个时间内存内的所有数据写入硬盘 场景:redis快照内存里面的数据 1. 用户发送bgsav...

拐美人
31分钟前
0
0
这个七夕,送你一份程序员教科书级别的告白指南

给广大爱码士们的高能预警: 今天,就是七夕了…… (单身非作战人群请速速退场!) 时常有技术GG向个推君抱怨 经过网民多年的教育 以及技术人持之以恒的自黑 冲锋衣狂热分子·格子衫骨灰级粉...

个推
36分钟前
0
0
python爬虫日志(15)cookie详解

转载:原文地址 早期Web开发面临的最大问题之一是如何管理状态。服务器端没有办法知道两个请求是否来自于同一个浏览器。那时的办法是在请求的页面中插入一个token,并且在下一次请求中将这个...

茫羽行
37分钟前
0
0
qlv视频格式转换器

  腾讯视频中的视频影视资源有很多,小编经常在里面下载视频观看,应该也有很多朋友和小编一样吧,最近热播的电视剧也不少,如《香蜜沉沉烬如霜》、《夜天子》还有已经完结的《扶摇》,这么...

萤火的萤火
41分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部