- 论坛徽章:
- 0
|
有a,b,c三个表,
要求把a表中满足如下条件的数据删除
1。在a,b,c表中同时存在(三表的主键都是产品番号)
2. b表中这些记录的更新年月日要大于20010101
3.c表中的登录年月日和a表中登录年月日相等
小弟,代码如下
DELETE FROM atbl a
WHERE EXISTS
(SELECT 'X'
FROM btbl b ,ctbl c
WHERE a.cp_no = b.cp_no and
b.gx_ymd>;=20010101 and
a.cp_no = c.cp_no and
a.dl_ymd=c.dl_ymd);
可是,当a表中有上万条记录时,程序爆慢。各位大虾,原因何在?
小弟,改了一下代码
DELETE FROM atbl
WHERE EXISTS
(SELECT 'X'
FROM atbl a,btbl b ,ctbl c
WHERE a.cp_no = b.cp_no and
b.gx_ymd>;=20010101 and
a.cp_no = c.cp_no and
a.dl_ymd=c.dl_ymd);
速度是快了,但是把不该删除的数据又删除了。
我哭呀!!!
好心的大虾们,救救我吧! |
|