gpt4 book ai didi

Mysql 从集合中排除子集

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

我已经尝试解决这个问题有一段时间了,但无济于事!

问题
考虑一个包含一些子集(即 3 个子集)的集合,如下所示:
Collection with 3 subsets

问题
无论如何,我可以选择 COLLECTION 排除 SUB3 吗?

我尝试了很多东西,例如:LEFT JOINJOINNOT INNOT EXISTS ,以及更多的 SELECT 子查询。

SELECT 
t1.*, t2.*
FROM
table AS t1
LEFT JOIN
table AS t2 ON t1.id = t2.id
WHERE
t1.attribute = 'COLLECTION'
AND t2.attribute = 'SUB3'
AND oa2.id IS NULL;

注意
请注意, 包含大约 7500 万个条目(行),我希望快速获得一些内容!

更新
示例

+-----+-------------+
| id | attribute |
+-----+-------------+
| 1 | vehicle |
| 1 | bus |
| 2 | vehicle |
| 2 | car |
| 3 | vehicle |
| 3 | truck |
+-----+-------------+
Of course there is a second incremental id to avoid duplicate issues!

因此,在这个例子中,我想要除卡车之外的所有车辆!

请多多指教,
谢谢

最佳答案

使用 NOT EXISTS 删除所有不需要的元素

SELECT *
FROM table t
WHERE t.attribute = 'COLLECTION'
AND NOT EXISTS ( SELECT 'a'
FROM table t2
WHERE t2.id = t.id
AND t2.attribule = 'SUB3'
)

关于Mysql 从集合中排除子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29302957/

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