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

Selecionando contra subconjuntos de uma lista no MySQL


Se você fingir que seu filtro está em uma tabela:
select * 
from product p
where not exists (
    select 1
    from attributes a
    where a.product_id = p.product_id
    and not exists(
        select 1
        from filter f
        where f.id_attribute = a.id_attribute))

Se estivesse em uma consulta construída:
select * 
from product p
where not exists (
    select 1
    from attributes a
    where a.product_id = p.product_id
    and attribute_id not in (<list>))

Isso está fora da minha cabeça, então pode ter erros de digitação.