>>La tabella IngredienteRicetta, oltre agli ID di collegamento
>>ha anche le colonne Pre e Post.
>>Esempio:
>>Ricetta (IdRicetta, Nome)
>>-----------------
>>10 - Lasagne
>>11 - Pizza
>>
>>Ingrediente (IdIngrediente, Nome)
>>-----------------
>>20 - Ragù
>>21 - Sale
>>22 - Mozzarella
>>
>>IngredienteRicetta(IdIngredienteRicetta, IdIngrediente, IdRicetta,
>>Pre, Post)
>>-----------------------
>>31 - 20 - 10 - "250gr di " - NULL
>>32 - 21 - 10 - NULL - " quanto basta"
>>33 - 21 - 11 - NULL - " quanto basta"
>>34 - 22 - 11 - "50gr di " - " (consigliata quella di Bufala)"
>>30 - 21 - 11 - NULL - " (per la pasta)"
>>
>
>ok.. vuoi ricavare il 32, il 33, il 34 e il 30?
No. solo la ricetta 11 (quella che ha sia sale che mozzarella).
>immagino che tu non sappia quanti siano gli ingredienti che possono
>passarti..
No. Magari!
>quindi sei costretto a ricorrere ad un sql dinamico..
>ma che DBMS hai?
Per ora usa ACCESS (che non posso definire DBMS... ) ma in futuro dovrà funzionare su qualsiasi DB (almeno questa qwery dovrà essere compatibile) lo starto data del .NET cmq sara sensibile al DB.
Io ho fatto così:
SELECT * FROM Ricetta AS tR WHERE
2 = (SELECT Count(tIR.IdIngredienteRicetta) AS ConteggioDiIdIngredienteRicetta
FROM Ingrediente AS tI INNER JOIN IngredienteRicetta AS tIR ON tI.IdIngrediente = tIR.IdIngrediente
WHERE (tI.Nome Like "SALE") OR (tI.Nome Like "MOZZARELLA")
GROUP BY tIR.IdRicetta
HAVING (tIR.IdRicetta=tR.IdRicetta))
Ma mi restituisce anche quello che non voglio...
>Alx81 =)
>
>http://blogs.dotnethell.it/suxstellino
Andrea
http://www.MelisWeb.eu/