我有一个SQL问题。我用下面的一组表的工作:SQL关联实体问题
的配方表中包含5个配方,成分中含有很多成分(52),以及IngredientList是一个关联实体,许多-TO-的实现食谱和配料之间有很多关系。 RecipeID和IngredientID本质上是自动递增的ID号码。
我想写显示所有素食食谱的查询(即,食谱没有
'%beef%',
'%pork%',
'%chicken%',
'%lamb%
他们的任何相关Ingredient.Name的
)。我遇到的问题是,结果集包含每个配料一行,而不是每个配方一行。
产生这个结果集(注意成分表是这里命名成份)查询:
SELECT recipe.name AS Dish, ingredients.name
FROM (recipe JOIN ingredientlist ON recipe.recipeid=ingredientlist.recipeid
JOIN ingredients ON ingredientlist.ingredientid=ingredients.ingredientid)
WHERE ingredients.name NOT LIKE '%beef%'
AND ingredients.name NOT LIKE '%chicken%'
AND ingredients.name NOT LIKE '%pork%'
AND ingredients.name NOT LIKE '%lamb%';
该查询生成50个结果(不是52,因为两种成分是根据其成分除外。包含我的WHERE子句排除的子字符串的名称)。
我的目标是在配方表中返回5个配方名称中的3个(减去那些包含关联的ingredients.name中的肉)。
应该被标记为“家庭作业” – Timothy 2010-01-25 13:44:38