2017-05-30 179 views
-3

在SQL中,我必须从表A中删除依赖于表B的数据。
要删除的数据应该满足两个条件WorkArea='123' and FileNo='45'SQL中的依赖关系

BWorkArea但它不包含FileNo的数据。
而表A包含满足这两个条件的记录。

没有任何引用密钥。为更清楚起见,请在此处添加查询:

从表A中选择*,其中WorkArea ='123'和FileNo = '45';

这将生成结果记录。但由于它依赖于表B,我不能直接删除它。另外,从表B中删除它是不可能的,因为WorkArea中的数据是一个整体,它包含许多文件,我必须删除特定的文件。

那么如何删除表A中的数据?

This is Table A with col1 and col2 as primary key.

This is Table B with col1 as a primary key.

+2

表结构请... – Ravi

+3

添加一些示例表数据和结构。 – Yugandhar

+0

这些表之间是否有任何外键设置?就像我之前的每个人都说过的:表格结构/数据(例子)可能需要回答您 – Hybris95

回答

0

如果没有外键,下面的句子会工作。

DELETE FROM [A] WHERE [WorkArea] = '123' AND [FileNo] = '45'; 

然后你就可以programmaticaly检查是否有“孤儿”上表B有以下要求:

SELECT DISTINCT [B].[WorkArea] 
FROM [B] 
LEFT JOIN [A] 
ON [A].[WorkArea] = [B].[WorkArea] 
WHERE [A].[WorkArea] IS NULL 

要加强这方面的最后一部分,并从中产生DELETE一句话,只是存储结果将此请求转换为临时表格,然后将其作为WHERE语句与IN关键字一起使用。

+0

谢谢@ Hybris95为您提供即时帮助! –

+0

随时upvote /接受答案 – Hybris95