我有一个表命名product_cats,相关列MySQL的产品类别中选择
product_id,
cat_id
说我们有1类,2,3,4,5
我需要的所有的product_id的在cat_id 1和2以及(3或4或5)中。
在这一点上我有几个工作方法,但他们都非常缓慢。
有人可以在我身上释放一些mysql魔法吗?
编辑:
所以产品要在这两个类别1和2,在任何3,4或5
这是我尝试的想法更好的一个
SELECT
p1.product_id
FROM
product_cats p1 JOIN product_cats p2 ON (p2.product_id = p1.product_id)
JOIN product_cats p3 ON (p3.product_id = p1.product_id)
JOIN product_cats p4 ON (p4.product_id = p1.product_id)
WHERE
(p1.category_id=? AND p2.category_id=? AND p3.category_id=?)
OR
(p1.category_id=? AND p2.category_id=? AND p4.category_id=?)
您希望产品都在cat_id 1和2中?你能否展示你正在尝试的问题并使问题更清晰?有没有MySQL的魔术......但你可以使用索引 – fthiella