gpt4 book ai didi

mysql - 选择同一列中具有相同值的项目

转载 作者:行者123 更新时间:2023-11-29 21:51:28 24 4
gpt4 key购买 nike

我面临着一个难题;不知道为什么——是因为这么晚了,还是我被困住了。我的目标是在网页上创建一个过滤器,因此我正在尝试解决这个问题。

我在引用表 product_filter 中存储了带有过滤器的产品列表。

结构:

id | product_id | filter1_id | filter2_id
1 | 1 | 2 | 1 <---
2 | 1 | 4 | 3
3 | 1 | 5 | 1
4 | 2 | 2 | 1 <---
5 | 2 | 3 | 1
6 | 3 | 2 | 1 <---
7 | 3 | 3 | 4

我需要提交产品列表(例如 1、2、3)并仅获取那些对于所有选定产品 ID 都相同的过滤器组合。所以结果需要是

filter1_id | filter2_id
2 | 1

我的问题是我的产品可能会有所不同,而且我无法进行大量的 self 内部连接...所以我陷入困境...有什么建议吗?

最佳答案

以下是您可以尝试的一种方法:

select filter1_id, filter2_id 
from product_filter
group by filter1_id, filter2_id
having count(*)=(
select count(distinct product_id)
from product_filter
)

仅当每个product_id 都存在filter1_id 和filter2_id 组合时,才会返回列表。 ( Fiddle here. ) 这就是你所追求的吗?您是否没有提到如果所有给定的product_id 不存在任何组合(空结果集),应该返回什么?

这不是自连接(甚至不是大量自连接;)),但我想它仍然相当昂贵。

关于mysql - 选择同一列中具有相同值的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33591191/

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