Как сделать выборку where id = and id = из связанной таблицы в laravel?

Есть продукты и фильтры, они связаны через смежную таблицу продукты_фильтры.

Как получить продукты, где id фильтра = 1 и id фильтра = 2 ?

  $products = Product::whereHas('attributeValue', function ($q){
                $q->where('id', 3);
                $q->where('id', 5);
    })->get();

Пытался таким способом, но в ответ получаю пустую коллекцию.


Ответы (1 шт):

Автор решения: Akina

На чистом SQL это будет

SELECT product.id
FROM product
WHERE product.filter_id IN (3, 5)
GROUP BY product.id
HAVING COUNT(DISTINCT product.filter_id) = 2
→ Ссылка