sql-server - 需要根据一个 where 条件排除所有行
问题描述
我有一个包含三个表的数据库。recipe
使用这些列调用一个表:
EntryDate, Recipename, IngredientName, IngredientQty, QtyMeasurement
目前数据库中只有两个食谱。第一个食谱叫做 Kitchen Sink Cookies,有 17 种成分,第二个食谱叫做 No Bake Cookies II,只有 6 种成分。
食谱 1(厨房水槽)使用鸡蛋作为原料。我需要找到所有不使用鸡蛋的食谱。
到目前为止,我只能让它返回两个食谱或什么都不返回。我已经用谷歌搜索了几个小时,但无法让查询工作。
这是我尝试过的最新查询,它没有返回任何内容。
Use recipes;
Go
Select
RecipeName
From
recipe
Where
RecipeName Not In
(
select
RecipeName
from
recipe
where
IngredientName Not Like 'EGG%'
Group By
RecipeName
);
Go
所以我需要做的是,如果食谱的成分是鸡蛋,我需要从输出中排除食谱名称。
有没有人有任何想法,或者我可以查看的链接(我还没有看过),或者代码示例?
感谢您提前提供任何帮助。
解决方案
这有帮助吗?
SELECT * FROM recipe WHERE Recipename NOT IN
(SELECT Recipename FROM recipe WHERE IngredientName LIKE 'EGG%')
或者
SELECT r1.* from recipe r1
LEFT JOIN recipe r2 on r1.Recipename = r2.Recipename AND r2.IngredientName LIKE 'EGG%'
WHERE r2.Recipename is NULL
推荐阅读
- powershell - 使用 powershell -file /path/to/ps1 在本地运行自解密 base64 powershelll 脚本
- java - 复制文件时的 FileLock
- aws-api-gateway - 在 aws api-gateway 中定义 url 查询参数的类型
- php - 如果变量为空,则设置默认值
- stripe-payments - 如何通过 Stripe Payment Request Button 收集帐单地址
- reactjs - Apollo 客户端 updateQuery {} 中缺少字段 [fieldName]
- c# - 正方体无法读取单个数字
- javascript - 显示自定义叠加层的 ag-grid
- c++ - 使用终端 GCC 和 G++ 编译时,仅适用于 Box2D 的未定义参考
- python - 将值打印到 Tkinter 标签