0

请参阅我的小提琴示例:

http://sqlfiddle.com/#!3/1aaea/1

我的目标是删除所有没有迁移值“Y”的供应商。所以在我的小提琴的情况下,只有供应商 B 和 D 应该被删除。我正在为如何删除 migrate='n' 的所有供应商而苦苦挣扎,但保留具有 migrate='y' 的供应商,即使它们具有 migrate='n' 的值。

如何包含具有 migrate='y' 的供应商并排除没有的供应商?

我觉得我想太多了,答案就在我的眼皮底下......

4

1 回答 1

1

您可以通过测试where子句中的条件来做到这一点:

delete from example
    where not exists (select 1
                      from example e2
                      where e2.vendor = example.vendor and
                            e2.migrate = 'Y'
                     );

要在 SQLFiddle 中对此进行测试,您需要将 放在delete左侧窗口(架构窗口)中,而不是放在查询窗口中。

于 2013-06-19T19:22:57.470 回答