我想知道是否有可能使用单个mysql查询来完成某些操作,如果是这样,那么对最有效的方式感兴趣做到这一点。SQL:返回具有给定项目的值的子集的项目的查询
我有两个字段的表...让我们说配方和成分
我正在寻找具有给定配方的成分的子集所有的食谱。
为了说明:
Recipe | Ingredient
-------------------
sandwich | bread
sandwich | lettuce
sandwich | mustard
sandwich | bacon
sandwich | tomato
bacon salad | lettuce
bacon salad | tomato
bacon salad | bacon
veggie salad | lettuce
veggie salad | tomato
veggie salad | cucumber
我传递“三明治”作为参数,并需要一个查询将返回培根沙拉(即成分都包含在夹层的列表成分),但不是蔬菜沙拉,因为它含有黄瓜,这不在三明治中。
我查看了这个问题:
SQL query to exclude records that appear in other rows?
,但我认为我的情况是不同的,更加复杂。如果我传递“培根”并排除所有包含“培根”以外的成分的食谱,这将是类似的,但我需要根据输入配方成分的查询生成我排除的内容列表。
希望有道理!我觉得这应该是相当平凡的,但我坚持。
TIA为您提供帮助!
我不知道你是否能在MySQL中做到这一点,但在SQL Server中,为连接到子选择,或者使用/ CTE定义,这将是微不足道的表 – Nikki9696
谢谢,@ Nikki9696。你能为我的例子建议一个SQLServer查询吗?我会看看它是否会与MySQL一起工作。 – Sofia