例如,是否有一种方法可以在电话表中,如果至少一次收到的电话评级低于指定的电话,它们的等级会删除该电话的所有记录?
Company Rating
Samsung 5
Samsung 2
在该示例中,如果我想摆脱评级至少一次低于3的电话,则必须删除其中所有带有“三星”的记录。
答案 0 :(得分:2)
您将为此使用子查询,例如:
DELETE *
FROM YourTable
WHERE EXISTS (SELECT * FROM YourTable AS tmp WHERE Company = YourTable.Company AND Rating < 3)
答案 1 :(得分:1)
这是解决此问题的一种方法...(如您在WolfgangK的答案中看到的那样,有些方法可以在SQL代码中完成,但是我将使用可视化查询生成器,因为这可能会使您更容易了解您的入门知识。)
首先,这是一个示例数据集。对于我们的问题,我们想删除任何评级为3或以下的电话公司的记录。在此列表中,我们希望删除LG的所有记录,即使其中只有3个记录。
如果我们只想删除评级为3或以下的记录,那将很容易。我们只需要这样的删除查询即可:
但是,在您的情况下,即使只有某些符合条件,您仍要删除该公司的所有记录。没问题,只是稍微复杂一点。我们首先需要确定符合条件的公司。让我们创建一个名为 qryBadReviews 的新查询:
它与我们的删除查询非常相似,但也在结果中列出了公司名称。 (如果我们只想查看一次列出的公司名称,也可以将其分组。)
现在,下一步是创建我们的删除查询,该查询链接到具有匹配公司名称的不良评论查询。很简单,但是我们遇到了一个问题:
要解决此问题,您只需要在查询中将“唯一记录”属性更改为Yes
,然后它将为您运行。
以及得到的数据集:
对不起,LG,这只是一个例子!我喜欢你的电话。 :-)