使用 EXISTS、ALL、ANY 的 SQL 语句出现问题
Posted
技术标签:
【中文标题】使用 EXISTS、ALL、ANY 的 SQL 语句出现问题【英文标题】:Problem with SQL statement using EXISTS, ALL, ANY 【发布时间】:2020-12-15 15:03:53 【问题描述】:我必须使用EXISTS
或ALL
或ANY
来查找目录中包含id = 101
的所有汽车零件的所有提供商的名称。
Providers
是包含id
和nameProvider
的第一个表。Catalog
是包含id
和idp
的第二个表(汽车零件的ID)
查询:
select nameProvider
from Providers
where id in (select id from Catalog where id = 101);
我的陈述中缺少什么?谢谢!
【问题讨论】:
您不应该使用 EXISTS、ALL 或 ANY 吗?我会在这里使用 EXISTS 和一个相关的子查询。 【参考方案1】: 在关联的子查询中使用减号运算符,并且不存在可以正常工作 我过滤掉 id = 101,因为我假设输出中不需要 Provider id =101select nameProvider
from Providers p
where p.id != 101
and not exists (
select idp from Catalog c1 where c1.id = 101
minus
select idp from Catalog c2 where c2.id = p.id
)
;
【讨论】:
以上是关于使用 EXISTS、ALL、ANY 的 SQL 语句出现问题的主要内容,如果未能解决你的问题,请参考以下文章
LINQ体验——LINQ to SQL语句之Group By/Having和Exists/In/Any/All/Contains
MySQL中子查询IN,EXISTS,ANY,ALL,SOME,UNION介绍