Mysql中多表删除
Posted 悠然一笑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql中多表删除相关的知识,希望对你有一定的参考价值。
1、从mysql数据表A中把那些id值在数据表B里有匹配的记录全删除掉
DELETE t2 FROM A t1,B t2 WHERE t1.id = t2.id
DELETE FROM t2 USING A t1,B t2 WHERE t1.id = t2.id
【USING 的用法:
using()用于两张表的join查询,要求using()指定的列在两个表中均存在,并使用之用于join的条件。
例如:SELECT * FROM A t1 LEFT JOIN B t2 USING(id)
等同于:SELECT * FROM At1 LEFT JOIN B t2 ON t1.id = t2.Id
】
2、 从MySQL数据表A里在数据表B里没有匹配的记录查找出来并删除掉
DELETE t1 FROM A t1 LEFT JOIN B t2 ON t1.id = t2.id WHERE t2.id IS NULL
DELETE FROM t1 USING At1 LEFT JOIN B t2 ON t1.id = t2.id WHERE t2.id IS NULL
【被删除数据的表选择如上】
3、从两个表中找出相同记录的数据并把两个表中的数据都删除掉
DELETE t1,t2 FROM A t1 LEFT JOIN B t2 ON t1.Id = t2.id where t1.Id = 2 【适用Mysql 5.0以上版本】
【加WHERE条件则删除满足WHERE条件的两个表数据。
不加WHERE,则基表数据会全部被删除,连接表中和基表相同的数据全部被删除】
以上是关于Mysql中多表删除的主要内容,如果未能解决你的问题,请参考以下文章