使用子查询删除并交叉?

时间:2017-10-16 05:01:24

标签: sql sql-server subquery sql-delete intersect

我试图使用以下查询删除,但不幸的是,所有记录都被删除

DELETE [dbo].[devicelinks]
FROM   
    (SELECT *
     FROM [dbo].[devicelinks]
     WHERE PID = 7

     INTERSECT 

     SELECT * 
     FROM ASC.dbo.DEVICE_LINK
     WHERE PID = 7)

如何正确使用子查询从源表中删除相应的记录?

两个表中没有任何键或约束。

2 个答案:

答案 0 :(得分:2)

您可以使用b = list((b'food',)) 来检测要删除的记录:

EXISTS

答案 1 :(得分:1)

试一试

delete [dbo].[devicelinks]
from [dbo].[devicelinks]
    inner join ASC.dbo.DEVICE_LINK
     on [dbo].[devicelinks].PID = ASC.dbo.DEVICE_LINK.PID
where [dbo].[devicelinks].PID = 7