Heim >Datenbank >MySQL-Tutorial >根据表删除另一个表_MySQL

根据表删除另一个表_MySQL

WBOY
WBOYOriginal
2016-06-01 13:36:522046Durchsuche

bitsCN.com


根据表删除另一个表

 

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中是可以的)
 

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn