2012-07-23 95 views
0

我有一个SQL查询,我有多个结果来自一个非唯一的ID,如果一个条目等于一个值,我想删除它。SQL - 通过非唯一的ID删除多个条目

即。 id, billID, transaction - 对于billID可能有多个条目,其值不同为transaction。我想查找transaction值等于'testValue',然后删除与该billID所有条目。

到目前为止,我得到了我的原始数据,我把它放入一个#tmp1。然后我将所有billID的地方Transaction = 'testValue'转换为#tmp2

我该如何将这两者结合在一起,才能给出#tmp1的结果,其中不等于billID在#tmp2

谢谢!

+3

请提供样本数据和所需的输出。 – RedFilter 2012-07-23 16:21:17

+2

**什么**数据库系统,以及哪个版本? * SQL *只是*结构化查询语言* - 许多数据库系统使用的语言,但不是数据库产品...我们真的需要知道您正在使用的数据库系统**。 – 2012-07-23 16:21:57

+0

样本数据:1,20,'testValue'; 2,20,'文字'; 3,21,'文字';结果:3,21,'text' – 2012-07-23 16:23:15

回答

4

您可以在单个查询做到这一点:

delete from t 
where t.billid in (select billid from t where transaction = 'TestValue') 
+0

谢谢!似乎做的工作! – 2012-07-23 16:42:58