我想这样做:
delete from table1 a,table2 b, table3 c
where a.col1 = b.col1
and b.col2 = c.col2
and a.co3 <> 8001;
但它给了我一个错误。
答案 0 :(得分:3)
首先删除最低级别,然后从那里向上移动,每级删除一次,到最高级别:
DELETE FROM ChildTable WHERE ParentID=...
DELECT FROM ParentTable WHERE ParentID=...
答案 1 :(得分:2)
您可以启用级联删除,然后删除父记录。
答案 2 :(得分: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'
答案 3 :(得分:0)
从table1 a,table2 b,table3 c
中删除A.
其中a.col1 = b.col1
和b.col2 = c.col2
和a.co3&lt;&gt; 8001;