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

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=25
时间: 2024-10-23 02:54:48

MySQL多表关联数据同时删除sql语句的相关文章

MySql多表联结查询与多表关联数据同时删除

left join语法  代码如下 复制代码 table_references:     table_reference [, table_reference] -  table_reference:     table_factor   | join_table  table_factor:     tbl_name [[AS] alias]         [{USE|IGNORE|FORCE} INDEX (key_list)]   | ( table_references )   | {

mysql替换表中的字符串的sql语句_Mysql

核心语句: UPDATE `cdb_pms` SET `subject` = REPLACE(`subject`, 'Welcome to', '欢迎光临') mysql替换字段里数据内容部分字符串 mysql替换表的字段里面内容,如例子: mysql> select host,user from user  where user='testuser'; +-----------------------+----------+ | host                  | user    

mysql 多表关联更新/删除sql语句

1.mysql 多表关联delete中使用别名,tblwenhq是真实的表名,a是tblwenhq的别名,b是另一个表名  代码如下 复制代码 DELETE  a FROM tblwenhq a,b where a.id=b.id 2.使用mysql进行delete from操作时,若子查询的 FROM 字句和更新/删除对象使用同一张表,会出现错误. DELETE FROM tab1 WHERE col1 = ( SELECT MAX( col1 ) FROM tab1 ); ERROR 109

mysql导出-怎么让MySql数据库表和数据分开导出为sql文件

问题描述 怎么让MySql数据库表和数据分开导出为sql文件 之前用SQLyog把数据库表和数据导出到同一个文件.然后再导入的时候出错了(原因可能是数据里面有几百M的blob吧.不确定).然后看视频好像有将数据库表和数据分别导出到2个文件的方法,请大神教怎么弄!! 解决方案 http://www.cnblogs.com/yuanyouqi/archive/2010/04/28/1722738.html 解决方案二: 已经知道了..自己结贴

EF里单个实体的增查改删以及主从表关联数据的各种增删改查

原文:EF里单个实体的增查改删以及主从表关联数据的各种增删改查 本文目录 EF对单个实体的增查改删 增加单个实体 查询单个实体 修改单个实体 删除单个实体 EF里主从表关联数据的各种增删改查 增加(增加从表数据.增加主从表数据) 查询(查询导航属性为集合.查询导航属性为单个对象) 修改(修改从表的外键) 删除(删除主从表关系.删除主表数据.删除主从表数据.修改从表数据外键) 补充内容 SaveChanges方法提交多次操作 DbSet.Add方法返回当前实体 源码和系列文章导航 注:本章节多次演

mysql多表关联查询,增加了排序速度慢??

问题描述 mysql多表关联查询,增加了排序速度慢?? 这些是表的结构: CREATE TABLE rs_emp (EmpSysID varchar(36) NOT NULL,EmpNo varchar(20) NOT NULL,EmpName varchar(50) NOT NULL DEFAULT '',EmpSexSysID varchar(36) DEFAULT NULL,CardTypeSysID varchar(36) DEFAULT NULL,RateSysID varchar(3

mysql把一个表某个字段的内容复制到另一张表的某个字段的SQL语句写法

 有时候,我们需要复制某个字段一整列的数据到另外一个新的字段中,或是需要把某个表的某个字段的值跨表复制到另一个表中的某个字段,本文就罗列了一些SQL语句写法,需要的朋友可以参考下   需求:把一个表某个字段内容复制到另一张表的某个字段.   实现sql语句1:     代码如下: UPDATE file_manager_folder f1 LEFT OUTER JOIN file_manager_folder f2      ON f1.name = f2.name AND f2.parentI

thinkphp中多表查询中防止数据重复的sql语句(必看)_php技巧

下面先来看看例子: table id name 1 a 2 b 3 c 4 c 5 b 库结构大概这样,这只是一个简单的例子,实际情况会复杂得多. select *, count(distinct name) from table group by name 结果: id name count(distinct name) 1 a 1 2 b 1 3 c 1 最后一 项是多余的,不用管就行了 tp2.0手册   搜索连贯操作 可看到相关的资料 SELECT cat_id, COUNT(*) AS

操作account表和service表,查询申请远程登录业务的客户的数据,下列sql语句正确的是:

问题描述 操作account表和service表,查询申请远程登录业务的客户的数据,下列sql语句正确的是: 这个怎么解释啊...有点不懂 求详细解释... 解决方案 理论上 b和d正确 in要指明字段,exsist不需要 解决方案二: 敝人也是新手,不过A.B选项的语法是错误的.where条件后边是需要字段(id)的:另外exists的基本用法见百度,B明显不对. 这个题目查询的原理就是account和service两张表的id字段相等作为条件,连接两张表.C.D效果是一样的. 总之,建议楼主