私は作成したレシピを保存できますが、データベースに問題があります。私は3つのテーブル、レシピ、食材、ベースラインテーブルを持っています。すべての結果と一致するピボットテーブルからレコードを取得する
Recipe Table
ID int
name varchar
steps varchar
BaseIngredients Table
ID int
name varchar
Ingredients Table
ID int
baseID int
recipeID int
measurement varchar
だから、毎回私はそれがこのbaseingredientのIDを使用してのレコードを埋めた場合、私は、その中の成分を求め、そしてそれが基本食材テーブルに存在するかどうかを確認していますレシピに入力してください成分テーブル。
私の問題は、レシピを探す際に、私が冷蔵庫に入れている食材を検索できることです。だから私が卵とパンを打つと、それは卵のサンドイッチを思いつきます。しかし、使用するクエリでは、それは卵を持っているすべてのレシピを見つけ出し、それを返すので、例えばケーキやパンケーキを見つけることができます。検索パラメータとしてリストアップした成分のみを含むレシピがすべて表示されるように、どのように制限することができますか?
select recipes.id, recipes.name from recipes inner join ingredients on recipes.id = ingredients.recipeID inner join baseingredient on ingredients.baseID = baseingredient.id where baseingredient.name = 'Eggs'
私は実際にどのように動作するのかわかりません。データベースでもこのクエリを試してみましたが、何もしていないようです。たぶんそれを正しく理解していないかもしれない。私が与えた例では、卵と小麦粉を含むレシピの原料として卵をタイプした場合、実際に小麦粉があると指定していないのにこの結果が返ってくるでしょう。 – bob565
ok私は正しいことを理解していると思います。私が正しいかどうか教えてください。あなたが指定した成分だけ**を含むレシピを返そうと思いますか?したがって、_eggs_と_flower_を入力すると、2つの成分以外の成分を含むレシピは見たくないのですか? サイド質問:_eggs_、_flower_、_butter_を入力すると、_eggs_と_flower_のみを含むレシピを返信しますか? – user2877959
はい、それは正しいので、卵だけを入力すると、卵以外のものを含む結果は見たくないのです。小麦粉は私がそれらの2つの成分を持っているのでうまくいくので、レシピを作ることができる – bob565