0
我有這些表的數據庫與值相關的子查詢結果的所有行(省略的問題不相關的列,所有列是主鍵):從查詢排除
recipes (name, ...)
ingredients (name, ...)
composition (rec_name,ing_name)
組合物涉及的食譜和他們(獨特的)名字的成分。
我想選擇所有食譜的成分全部出現在產生白名單的給定子查詢中(或排除包含非白名單成分的所有食譜)。
到目前爲止,我這個過來:
SELECT DISTINCT recipes.name
FROM recipes,ingredients, composition
WHERE recipes.name = composition.rec_name AND
ingredients.name = composition.ing_name
GROUP BY ingredients.name
HAVING ingredients.name = ANY (**SUBQUERY**)
這樣我可以排除非白名單的成分,但配方返回由於其他列入白名單的成分(如果我刪除DISTINCT
每個食譜顯示出來它是由許多「好」成分構成的)。一旦它包含非白名單成分,我怎樣才能完全刪除食譜?
我沒有在問題中包含子查詢,因爲它相當長,並且已經過測試並且可以正常工作,它開始像SELECT ingredients.name FROM ...
那樣沒有類型問題。
好的,它的工作原理!謝謝,我一直在想我的方式,想不到配料 –