1

レシピ、材料リスト、材料の 3 つのテーブルがあります。

肉の食材を含まないすべてのレシピの名前を選択したい。

レシピと食材リストにはrecipeid属性があり、食材リストと食材にはingredientid属性があります。

ingredientlist.ingredientidのエントリが含まれている場合、それに関連ingredient="meat"するすべてのエントリを除外したいrecipe.nameingredientid

書き方がわかりませんが、ここに私の選択があります:

SELECT recipe.name FROM recipe
INNER JOIN ingredientlist ON recipe.recipeid = ingredientlist.recipeid
INNER JOIN ingredients ON ingredientlist.ingredientid = ingredients.ingredientid
WHERE NOT ingredients.type="beef"
GROUP BY recipe.name;
4

1 に答える 1

0

これは機能するはずです:

SELECT *
FROM Recipe R
WHERE NOT EXISTS (  SELECT * FROM IngredientList IL
                    INNER JOIN Ingredients I
                        ON I.ingredientid = IL.ingredientid
                    WHERE IL.RecipeId = R.RecipeId
                    AND I.type = 'beef')
于 2013-02-06T18:59:51.137 に答える