2016-12-05 5 views
-3

私は、私もアプローチする方法を決定することはできません。この非常に特定の問題を抱えています。だから、MySQLには3つのテーブルがあります。具体的なSQLの問題:すべてのIDが一致した行...(MySQLの)を選択する方法

recipeid_recipe | name | | picture

ingredients_recipeid_rs | id_recipe | id_ingredients

ingredientsid_ingredient | name | picutre

これは、あなたが食材を選び、サイト、(その入力が1以上id_ingredientである)であり、それは三つのカテゴリーを表示する必要があります

  1. あなたが今作ることができるすべてのレシピを(あなたはすべての成分を持っています
  2. 1つまたは2つの成分が欠けているすべてのレシピ
  3. 3つまたは4つの成分が欠けているすべてのレシピです。

あなたはこれらの3 SQLの選択で私を助けることができますか?私は今かなりデッドロックしています。ありがとう。

サンプルデータhttp://pastebin.com/aTC5kQJi

+4

あなたは何か試したに違いないでしょうか? –

+0

サンプルデータと期待される出力は、より正確な答えを得るのに役立ちます。 – Susang

+2

いくつかのサンプルテーブルデータと期待される結果、およびフォーマットされたテキストを追加します。現在のクエリの試行も表示してください。 – jarlh

答えて

0

私はあなたの基本的なステートメントは、右のトラックにすでにあると思います。あなたはちょっとしたトリックをするだけです。あなたは、それらを直接比較することはできませんが、食材の数を比較することができます。

SELECT id_receipe, count(id_rs) as ingredient_count 
    FROM ingredients_recipe 
    WHERE id_ingredient IN (2, 5) 
    GROUP BY id_recipe 

これは、各receipeのためにあなたが持っている成分の数を与えます。各レシピの成分の合計量を取得してください。

SELECT id_receipe, count(id_rs) as ingredient_count 
    FROM ingredients_recipe 
    GROUP BY id_recipe 

と比較してください。最初のクエリを基にします。 3つのカテゴリを簡単に取得できます。

+0

ありがとう、完璧なソリューションです。私のSQLをチェックしてください。 –

関連する問題