gpt4 book ai didi

MySQL 检索条件唯一且真实的记录,即不存在其他记录

转载 作者:行者123 更新时间:2023-11-29 14:47:37 26 4
gpt4 key购买 nike

我有一个旧数据库,正在使用基本的列布局,如下所示:

SampleID
CompanyID
CompanyApplication
CompanyTest1
...
CompanyTest25

至少没有标准化,这导致了一些数据挖掘问题。

我需要获取 CompanyID(分组依据),其中 CompanyApplication 字段 =“注册”,但该公司没有为任何 SampleID 选择任何 CompanyTest(n) 字段。

问题是,有些 CompanyID 同时具有 CompanyApplication 和 CompanyTest(n) 记录(多行),但我想获取仅具有注册的 CompanyApplication 的 CompanyID。

有助于说明的数据:

SampleID | CompanyID | CompanyApplication | CompanyTest1 | ... | CompanyTest25
------------------------------------------------------------------------
1 | 1 | Registration | | |
------------------------------------------------------------------------
2 | 1 | | True | |
------------------------------------------------------------------------
3 | 2 | Registration | | |
------------------------------------------------------------------------
4 | 2 | Registration | | |
------------------------------------------------------------------------
5 | 3 | | True | |
------------------------------------------------------------------------
6 | 3 | | | | True

我只想检索第 3 行和第 4 行,因为它们只有注册而没有其他测试。

最佳答案

我们可以首先选择您尝试排除的所有行,然后使用 NOT EXISTS 跳过该查询中的 CompanyID

SELECT DISTINCT ct1.company_id
FROM company_table AS ct1
WHERE ct1.CompanyApplication = "Registration"
AND NOT EXISTS(
SELECT 1
FROM company_table AS ct2
WHERE ct1.company_id = ct2.compnay_id
AND (ct2.CompanyTest1 IS NOT NULL
OR ct2.CompanyTest2 IS NOT NULL
...
OR ct2.CompanyTest25 IS NOT NULL)
)

关于MySQL 检索条件唯一且真实的记录,即不存在其他记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6588862/

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