Ciao a tutti, ho due tabelle relazionate in forma "molti a molti", “ingrediente” e “ricetta”.
Esiste quindi una terza tabella che funge da collegamento tra le due tabelle, “ingredientericetta”.
Per entrare più nel dettaglio ho qualcosa del genere:
ingrediente
ID (primary key) …..ALTRI CAMPI

ricetta
ID (primary key) …..ALTRI CAMPI

Ingredientericetta
ID_ingrediente foreign key references ingrediente (id) ID_RICETTA foreign key references ricetta(id)

Il mio intento è quello di ricercare tutte le ricette che hanno tutti gli ingredienti presenti in un insieme. La mia idea per svolgere ciò eè quella di costruire una query dinamicamente facendo l'intersezione in serie delle singole query, cioè facendo un qualcosa del genere:
ho un insieme di ingredienti del tipo:
{ingr1, ingr2, ... ,ingrn}
Quindi per ottenere le ricette che hanno tutti gli ingredienti faccio qualcosa del genere
select id_ricetta from ingredienteRricetta where id_ingrediente=ingr1
INTERSECT
select id_ricetta from ingredienteRricetta where id_ingrediente=ingr2
INTERSECT
...
INTERSECT
select id_ricetta from ingredienteRricetta where id_ingrediente=ingrn

Essendo una procedura piuttosto elaborata, mi preoccupano per le performance nel caso di un gran numero di ingredienti...
Esiste secondo voi un modo migliore e più efficiente di fare questa cosa?