Chiedo venia!
Ad ogni modo, non funziona neanche con l'operatore IN. Questa è la query che uso:
codice:
SELECT ricetta.idRicetta, ricetta.nomeRicetta FROM ingredienti, ricetta, ing_ricette WHERE
ing_ricette.idRicetta = ricetta.idRicetta AND
ing_ricette.idIngrediente = ingredienti.idIngrediente AND
ing_ricette.idIngrediente IN (1,2)
che viene automaticamente trasformata in
codice:
SELECT ricetta.idRicetta, ricetta.nomeRicetta
FROM ing_ricette INNER JOIN
ricetta ON ing_ricette.idRicetta = ricetta.idRicetta INNER JOIN
ingredienti ON ing_ricette.idIngrediente = ingredienti.idIngrediente
WHERE (ing_ricette.idIngrediente IN (1, 2))
E dico che non funziona perché il resultset è assurdo: mi restituisce un numero di risultati strano, ovvero mi tira fuori prima i risultati delle ricette che contengono idIngrediente pari a 1, e poi aggiunge le ricette che hanno idIngrediente pari a 2. A me invece servirebbe che uscissero solo i risultati delle ricette che hanno SIA uno che l'altro, e non uno O l'altro. E quindi sarebbe un AND, solo che non funziona... perché, ripeto, credo che idIngrediente può assumere SOLO un valore e non più valori...