gpt4 book ai didi

连接和过滤的 Mysql 查询问题

转载 作者:可可西里 更新时间:2023-11-01 07:34:18 25 4
gpt4 key购买 nike

我有一张表,其中存储了带有过滤器 ID 的产品 ID。映射是一对多的。 (一个产品可以与多个过滤器相关联)。现在我需要获取符合所有 条件的记录。举例来说,我需要获取具有过滤器 1,5 和 7 的产品。我想要完全匹配的产品,例如映射到 1 AND 5 AND 7 的产品。

表结构如下

CREATE TABLE IF NOT EXISTS `product_to_filter` (
`product_id` int(11) NOT NULL,
`filter_id` int(11) NOT NULL,
PRIMARY KEY (`product_id`,`filter_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

我已经尝试了下面提到的查询,但它没有获取我想要的结果。

select distinct p1.product_id, p1.filter_id from product_to_filter p1
join product_to_filter p2 on 1=1
join product_to_filter p3 on 1=1
where
p1.filter_id=1 AND p2.filter_id=5 AND p3.filter_id=7

请帮我解决这个问题

最佳答案

可能有更好的方法来做到这一点,你也可以使用下面的脚本

SELECT distinct p1.product_id
FROM product_to_filter p1
WHERE EXISTS(SELECT 1 from product_to_filter p2 WHERE p1.product_id=p2.product_id AND p2.filter_id=2)
AND EXISTS(SELECT 1 from product_to_filter p3 WHERE p1.product_id=p3.product_id AND p3.filter_id=5)
AND EXISTS(SELECT 1 from product_to_filter p4 WHERE p1.product_id=p4.product_id AND p4.filter_id=7)

关于连接和过滤的 Mysql 查询问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39203209/

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