在SQL中,我要删除表A
中依赖于表B
的数据。
要删除的数据应满足两个条件WorkArea='123' and FileNo='45'
。
表B
有WorkArea
但不包含FileNo
的数据
表A
包含满足这两个条件的记录。
没有任何参考密钥。为了更加清晰,请在此处添加查询:
从表A中选择*,其中WorkArea ='123',FileNo ='45';
这将生成结果记录。但由于它依赖于表B,我无法直接删除它。此外,要从表B中删除它是不可能的,因为WorkArea中的数据是一个整体,它包含许多文件,我必须删除一个特定的文件。
那么如何删除表A
中的数据?
答案 0 :(得分:0)
如果您没有外键,则以下句子将起作用。
DELETE FROM [A] WHERE [WorkArea] = '123' AND [FileNo] = '45';
然后,您可以使用以下请求以编程方式检查表B
上是否存在“孤儿”:
SELECT DISTINCT [B].[WorkArea]
FROM [B]
LEFT JOIN [A]
ON [A].[WorkArea] = [B].[WorkArea]
WHERE [A].[WorkArea] IS NULL
要增强此最后一部分并从中生成DELETE
句子,只需将此请求的结果存储到临时表中,然后将其用作WHERE
语句并使用IN
关键字