gpt4 book ai didi

mySQL 专家 - 需要有关 'intersect' 的帮助

转载 作者:行者123 更新时间:2023-11-29 01:47:43 24 4
gpt4 key购买 nike

我知道 mySQL 5.x 不支持 INTERSECT,但这似乎是我需要的。

表 A:产品 (p_id)

表 B:Prod_cats (cat_id) - 类别信息(名称、描述等)

表 C:prod_2cats (p_id, cat_id) - 多对多

prod_2cats 包含已分配给产品 (A) 的许多(1 个或多个)类别。

进行查询/筛选查找,(用户交互)并且需要能够跨多个类别选择满足所有条件的产品。

例如:- 80 种产品分配到 X 类- 50 种产品分配到类别 Y- 但只有 10 个产品(相交)被分配给猫 X 和猫 Y

此 sql 适用于一个类别:

SELECT * FROM products WHERE p_show='Y' AND p_id IN ( SELECT p_id FROM prods_2cats AS PC WHERE PC.cat_id =". $cat_id ."

<-$cat_id 是从查询表单传递过来的经过清理的变量。

我似乎无法找到说'给我猫 A 和猫 B 的交集'并取回子集(10 条记录,从我的例子)

帮助!

最佳答案

嗯,我不确定这是最好的方法,但它可以很容易地添加到您现有的查询中:

SELECT *
FROM products
WHERE p_show='Y'
AND p_id IN (SELECT p_id
FROM prods_2cats AS PC
WHERE PC.cat_id = $cat1_id)
AND p_id IN (SELECT p_id
FROM prods_2cats AS PC2
WHERE PC2.cat_id = $cat2_id)

关于mySQL 专家 - 需要有关 'intersect' 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2581067/

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