首页 > 数据库 > MySQL > 正文

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

2024-07-24 12:38:31
字体:
来源:转载
供稿:网友

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  --Vevb.com 

在数据里面执行是错误的,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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表