私に困ったSQLクエリがあります。基本的には、私はRecipes
テーブルを持っています(疑いの余地はないと思いますが)多くのレシピが含まれています。私はすべての種類の食材を含むIngredients
テーブルを持っています。私はRecipeIngredients
テーブルを持っていて、レシピをどの成分に使用するかをリンクしています。最後に、私は人々が彼らの台所で持っている可能性がある最も人気のある成分が含まれていPopularIngredients
テーブル(?それは実際に眺めだが、誰が気に)持っている:牛乳、卵、バター、小麦粉、砂糖、塩だけで、いくつのレシピを作ることができますか?
CREATE Table Recipes
(
RecipeId int4,
Title varchar(100)
);
CREATE Table Ingredients
(
IngredientId int4,
Name varchar(100)
);
CREATE Table RecipeIngredients
(
RecipeId int4,
IngredientId int4,
Amount int2
);
CREATE Table PopularIngredients
(
IngredientId int4
);
を私の目標は、使用するすべてのレシピの一覧を取得することです人気の成分。
サンプルデータを持つSQL Fiddleはhereです。
私が探しているチキンサラダとパンケーキを返しますクエリです。 Aligator Burgersは、aligatorを使用しているため返されません。
私はサブ選択とALL
キーワードを含むいくつかのことを試しましたが、運がなかった。私は様々な内側と外側の結合を試みましたが、少なくとも1つの成分が普及している限り、レシピの行はまだ表示されます。どんな助けでも大歓迎です!
私はPostgres 9.1を使用しています。
を更新しましたこのモデルの質問です。私は新しいポスターを使ってそれを正しく行う方法を示しています。 –