2016-12-05 68 views
-3

我有這個非常具體的問題,我甚至無法決定如何處理。所以我在MySQL中有3個表。特定的SQL問題:如何選擇ALL ID匹配的行...(MySQL)

recipeid_recipe | name | text | 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 

一個比較他們。以第一個查詢爲基礎。你可以很容易地得到你的三個不同的類別。

+0

謝謝,完美的解決方案。非常簡單!我需要檢查我的SQL。 –