Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Selecione as linhas em que o pivô tem TODOS os IDs


Você pode adicionar um having cláusula à sua consulta para garantir que cada grupo de c.id tenha todos os quatro cp.product_id:
SELECT
    c.id as company_id
FROM
    `companies` as c
    LEFT JOIN `company_products` cp ON cp.company_id = c.id
WHERE
    c.id IN (8, 13)
    AND cp.product_id IN (1,2,4,8)
GROUP BY
    c.id
HAVING COUNT(DISTINCT cp.product_id) = 4;    

Exemplo de violino SQL

Se você também precisar dos detalhes do produto, poderá usar a consulta acima como uma tabela derivada e juntá-la à tabela de produtos.