查询删除记录

问题描述:

我有一个表格,包含以下字段。我的要求是当 时将表中的记录删除1.标记设置为'否' 2.对于标题,在一个记录中如果标记设置为“否”,并且在另一记录中如果设置为'是'。删除这两个记录。例如TH-123,在第1条记录中,标志设置为“否”,并且在第4条记录标志设置为“是”,删除两条记录。 3.对于标题,如果该标志设置为“否”,则在一个记录中,如果标题设置为“(空格)”,则在另一个记录中。删除这两个记录。例如TH-344。删除这两个记录。查询删除记录

Title      Flag  

    TH-123      No 
    TH-344       
    TH-543      No 
    TH-123      Yes 
    Th-344      No 
    Th-098      Yes 
    Th-876      Yes 
    Th-098      Yes 
    Th-512      No 

所以现在我期待一个结果,以下记录。

Th-098      Yes 
    Th-876      Yes 
    Th-098      Yes 

我已经完成了2个查询。

update temp1 set [flag] = 'No' WHERE Title IN 
(SELECT Title FROM temp1 where [flag] = 'No') 

delete from temp1 where [flag] = 'No' 

是否可以使用单个查询。如果是的话,请让我知道或任何其他更好的方法..

delete from temp1 
where 
    Title IN 
     (SELECT Title FROM temp1 where [flag] = 'No') 
+1

Thanku。查询很聪明。 – satya 2010-09-21 12:17:10

这应该工作:

delete from t1 
from temp1 t1 
    inner join temp2 t2 on t1.Title = t2.Title 
where t2.[flag] = 'No'