gpt4 book ai didi

mysql - SQL:如果同一个表中没有其他具有特殊不同值的条目,则只显示条目

转载 作者:行者123 更新时间:2023-11-29 00:19:11 25 4
gpt4 key购买 nike

ID    ID_A   Status  
175 473 2
174 473 1
173 455 2
170 412 2
169 397 1
168 393 2
173 391 2

那是我的示例表。因此,我希望它只显示状态为 1、按 ID_A 分组的条目。它不能包含 Status=2 的结果!结果应如下所示:

ID_A   Status
397 1

我的问题是可能有两个相似的 ID_A 条目。不知道使用 COUNT 或 DISTINCT 是否容易做到这一点?不知何故,我现在还没有得到它。提前致谢!

最佳答案

这有时称为排除连接

您执行外部联接以尝试找到会使您的条件无效的行。如果没有这样的行,外连接会将 NULL 放入连接表的所有列中,然后你就有了一个匹配项。

SELECT t1.ID_A, t1.Status
FROM exampletable AS t1
LEFT OUTER JOIN exampletable AS t2
ON t1.ID_A = t2.ID_A AND t2.Status = 2
WHERE t1.Status = 1
AND t2.ID IS NULL;

来自@Strawberry 的回复:

2001 年的美国专利,"Optimizing an exclusion join operation using a bitmap index structure"定义排除连接:

An exclusion join operation selects rows in a first table having values in specified columns where the values cannot be found in a specified column of a second table. A database system may execute such a query by excluding entries in the first table that match entries in the second table.

该专利还引用了 1993 年的一篇论文,"Parallel implementations of exclusion joins"

我假设这个词也早于那篇论文。

关于mysql - SQL:如果同一个表中没有其他具有特殊不同值的条目,则只显示条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21761871/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com