这可能是可以在本网站上提出的问题,但我无法找到答案。
我的问题是我有3张桌子
a。产品表
湾类别表
℃。 product_category表
任何产品都可以有多个类别
因此,如果我想知道包含任何类别的所有产品,那么我可以使用像
这样的mysql查询Select *
From products
left join product_category on (product.id = product_category.product_id)
Where category id in (45,56,78)
但是,如果我只想要那些拥有所有这些类别的产品,那么我如何找到它?
答案 0 :(得分:1)
Select p.id
from products p
join product_category pc on p.id = pc.product_id
where category_id in (45,56,78)
group by p.id
having count(distinct category_id) = 3