【发布时间】:2010-04-05 20:46:28
【问题描述】:
我知道 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 个产品(相交)分配给 cat X 和 cat 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 ."
我似乎找不到说“给我猫 A 和猫 B 的交集”并取回子集的方法(来自我的示例的 10 条记录)
帮助!
【问题讨论】:
标签: mysql select union intersect