十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
DELETE删除多表数据,怎样才能同时删除多个关联表的数据呢?这里做了深入的解释:
创新互联建站主营井冈山网站建设的网络公司,主营网站建设方案,App定制开发,井冈山h5小程序定制开发搭建,井冈山网站营销推广欢迎井冈山等地区企业咨询
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里有匹配的记录全删除 掉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
在数据里面执行是错误的(MYSQL 版本小于5.0在5.0中是可以的)
你如果在表的定义语句中使用了ON DELETE CASCADE对子表(既B表)进行了修饰,那么删A表的该条数据时会自动删除B表的对应关联数据,这个叫级联删除,建议在定义外键的时候都予以考虑,为了日后的处理方便,相应的还有ON UPDATE CASCADE,这个是用于在更新主表的同时能够自动更行子表。不然的话就只能先删B表的数据再删A表的,因为如果先删A表的数据会因为有外键约束而删除失败的,希望能帮到你。
删除
DELETE tableA,tableB FROM tableA LEFT JOIN tableB ON tableA.id = tableB.id WHERE tableA.type='要处理的type' AND count(tableA.type)=100 group by tableA.id;
查询就把delect改成select
例:
从两个表中找出相同记录的数据并把两个表中的数据都删除掉
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中是可以的)
附:上述语句运行的环境 MYSQL 4.0.2以上
1. 用您的会员名登录无忧空间站,左侧控制面板点击“自助管理”-“数据库”,选择您的数据库点“管理”,点击“高级管理”
2. 出现MYSQL高级管理登录框,用您的数据库用户名,密码登录,在登陆时,需要根据您的数据库编码选择对应的语言,一般可以选择“Chinese Simplified (zh-utf-8)”和“Chinese Simplified (zh-gb2312)”,根据你的MYSQL数据库编码来确定。
3. 登陆MYSQL管理器后,左侧点击你的数据库名字,右侧会出现该数据库下所有数据表。
4. 在每行数据表右侧有一个红色的“叉”按钮,即可删除当前的表。
5. 要删除多个表,勾选每个表,点最底部的删除按钮。