delete表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中是可以的)
最新文章
- Wintel物联网平台-Windows IoT新手入门指南
- (转) How to Train a GAN? Tips and tricks to make GANs work
- windows下为mysql添加日志
- NGUI 图片变灰
- WCF 自托管、无配置文件实现jsonp(跨域)的访问
- Ubuntu Server如何配置SFTP
- iOS另类的内存管理
- 七牛云覆盖上传 php
- 算法之插入排序(inertionSort)
- 解决 SQLSERVER 2008 无法删除作业
- centos上如何安装mysql
- Android零碎知识点总结
- fpga该驱动器调试dev_dbg 无输出
- 显示图像的SIFT flow描述子
- margin纵向重叠
- CentOS7开启docker远程访问并在idea中连接使用
- nginx upstream的配置
- vue-router-6-命名视图
- javascript中的立即执行函数(function(){…})()
- Java虚拟机 - 结构原理与运行时数据区域
热门文章
- 7z压缩文件时排除指定的文件
- MVC认知路【点点滴滴支离破碎】【一】----新建数据库
- PHP配置详解
- java中的@Override标签,小细节大作用
- jquery里的on方法使用
- java 上传图片 并压缩图片大小
- [转]领域驱动设计系列文章(2)——浅析VO、DTO、DO、PO的概念、区别和用处
- 去掉iPhone、iPad的默认按钮样式 去掉高光样式:
- mssql-异常value '0000-00-00' can not be represented as java.sql.Date
- Hibernate-注解-实体类