如何用一条SQL语句删除3个表中的内容

2025-02-24 15:56:40
推荐回答(4个)
回答1:

一条SQL语句,使用delete多表删除的用法咯
delete 新闻表 评论表 分类表
From 新闻表 评论表 分类表
where 新闻表.新闻ID=评论表.新闻ID
and 新闻表.sortID=分类表.sortID
and 分类表.sortID='类别1'
以上为删除“类别1”相关的三个表的记录的SQL。

对了你说的三个表没有主外键关联??上面的SQL需要有联系的!
如果没有关联应该没法做,否则你至少得执行delete三次啊。

对补充的思考:
既然没有关联,那干吗要一起删除呢?比方新闻1属于A类,而新闻类别没有A类,或者类别表中的类别实际上称为甲类,而不叫A类。但不管是否有类似于外键那样的联系,但至少要有一个对应吧。比方A类对应甲类。不然就是没有关系的两个表啊!
或者你应该整理一下几表的数据,使之有联系,我想做这件事的意义比你想办法在现有基础上怎么实现要大。

回答2:

exec('delete 新闻表 where ... ;
delete 评论表 where ... ;
delete 分类表 where ... ;')

回答3:

难住了。。。看谁还能帮下忙!

回答4:

没听说过,过程式设计思路。
建议别这么做。