1

我想做这个:

delete from table1 a,table2 b, table3  c 
 where a.col1 = b.col1 
   and b.col2 = c.col2 
   and a.co3 <> 8001;

但它给了我一个错误。

4

4 回答 4

3

首先删除最低级别,然后从那里向上移动,每级删除一次,直到最高级别:

DELETE FROM ChildTable WHERE ParentID=...

DELECT FROM ParentTable WHERE ParentID=...
于 2010-03-09T15:37:57.440 回答
2

您可以打开级联删除,然后删除父记录。

于 2010-03-09T15:44:17.733 回答
1

由于您没有指定每个表有什么外键以及在哪个字段上,我会猜测一下:

Delete TableC
Where Exists( Select 1 From TableA Where TableA.Col1 = TableC.Col2 And TableA.Col3 <> '8001' )

Delete TableB
Where Exists( Select 1 From TableA Where TableA.Col1 = TableB.Col2 And TableA.Col3 <> '8001' )

Delete TableA
Where Col3 <> '8001'
于 2010-03-09T15:41:11.250 回答
0

从 table1 a,table2 b, table3 c 中删除 A,
其中 a.col1 = b.col1
and b.col2 = c.col2
and a.co3 <> 8001;

于 2010-03-09T18:30:07.917 回答