Mysql
 sql >> Database >  >> RDS >> Mysql

Selezione rispetto a sottoinsiemi di un elenco in MySQL

Se fai finta che il tuo filtro sia in una tabella:

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 era in una query costruita:

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>))

Questo è fuori di testa, quindi potrebbe avere errori di battitura.