Select Distinct ...
From Recipes As R
Where R.ingredient in(ingredient_a, ingredient_b...)
And Not Exists(
Select 1
From Recipes As R2
Where R2.Recipe = R.Recipe
And R2.Ingredient In(ingredient_d)
)
जैसा कि जेफरी एल व्हिटलेज ने उल्लेख किया है, उपरोक्त क्वेरी कोई भी नुस्खा लौटाएगी जिसमें कम से कम एक है वांछित सूची में घटक और अवांछित सूची में कोई नहीं। हालांकि, अगर आप उन व्यंजनों को वापस करना चाहते हैं जिनमें सभी . शामिल हैं वांछित सूची में सामग्री और अवांछित सूची में कोई भी नहीं जो आप कर सकते हैं:
Select Distinct ...
From Recipes As R
Where Exists (
Select 1
From Recipes As R2
Where R2.Recipe = R.Recipe
And R2.ingredient in(ingredient_a, ingredient_b...)
Having Count(*) = @CountOfPassedIngredients
)
And Not Exists(
Select 1
From Recipes As R2
Where R2.Recipe = R.Recipe
And R2.Ingredient In(ingredient_d)
)
इस परिदृश्य में, आपको पहले वांछित अवयवों की संख्या निर्धारित करनी होगी।