主题:  如何用一条SQL语句同时删除多个表中的多条记录?

悲伤的设计

职务:普通成员
等级:1
金币:1.0
发贴:158
#12004/3/23 10:50:59
比如:我写一个信息库,有如下几个表,公司信息,人才招聘,公司动态,供求信息,产品展示等等
每个公司注册后就可发布相关信息,并把公司ID号(唯一的)写入其它各个表中的COMID字段,关联,那么如果我要删除这个公司,比如这个公司的ID是5,我删除的时候要把其它各个表中的所有COMID字段为5的删除,或者,我要删除3,4,5,6,7,8的公司,同时要把其它各个表中所有COMID为3,4,5,6,7,8的记录删除,请问如何用一条SQL实现
以下是我失败的语句:
1
delete from info,JOB,product where COM_id in ("&id&")

2,成功的写法,但是用了多条
Application("Conn").Execute "delete from INFO where id in ("&id&")"
Application("Conn").Execute "delete from JOB where COM_ID in ("&id&")"
Application("Conn").Execute "delete from PRODUCT where COM_ID in ("&id&")"
Application("Conn").Execute "delete from SMINFO where COM_ID in ("&id&")"
Application("Conn").Execute "delete from NEW where COM_ID in ("&id&")"
Application("Conn").Execute "delete from productclass where COM_ID in ("&id&")"



GoRiLLaZ!!

职务:普通成员
等级:1
金币:0.0
发贴:16
#22004/3/24 11:38:37
两条不行吗?



GoRiLLaZ!!

职务:普通成员
等级:1
金币:0.0
发贴:16
#32004/3/24 12:41:00
delete from info,JOB,product, where info.COM_id=JOB.COM_id=product.job_COM in ("&id&"



雨中的太阳

职务:普通成员
等级:1
金币:0.0
发贴:75
#42004/3/24 13:19:30
楼上的你试过么?



GoRiLLaZ!!

职务:普通成员
等级:1
金币:0.0
发贴:16
#52004/3/24 16:47:27
没试过,我看他格式不对,随手写的,怎么?不能用啊?要不试试这个:
delete from info,JOB,product, where info.COM_id=JOB.COM_id=product.job_COM = "&id



悲伤的设计

职务:普通成员
等级:1
金币:1.0
发贴:158
#62004/3/25 10:07:58
不行呀
好多条是行的,但我说的是一条如何删?



elite_5d

职务:普通成员
等级:2
金币:1.0
发贴:330
#72004/3/25 11:37:05
delete from info where COM_id in ("&id&")
最简单的方法用一条就行了,在SQL里做触发器吧,
在info表里作触发器
create trigger xx on info
for delete
as
delete job where job.COM_id in (select COM_id from deleted)
delete product where product.COM_id in (select COM_id from deleted)
...
...
...
把所有的表都写上就可以了



悲伤的设计

职务:普通成员
等级:1
金币:1.0
发贴:158
#82004/3/25 12:02:04
多谢