【发布时间】:2021-04-20 08:33:42
【问题描述】:
我有一张桌子,上面有成品及其组件。我想知道当组件之一在 where 子句中时,是否有一种方法可以过滤显示其所有组件的成品。
表格如下所示:
PRODUCT COMPONENT
ARTICLE1 1
ARTICLE1 2
ARTICLE1 3
ARTICLE2 1
ARTICLE2 2
ARTICLE3 1
ARTICLE3 3
我想过滤掉没有组件 2 的产品:
PRODUCT COMPONENT
ARTICLE1 1
ARTICLE1 2
ARTICLE1 3
ARTICLE2 1
ARTICLE2 2
我是这样做的:
select e.PRODUCT, e.COMPONENT
from STRUCTURE e
INNER JOIN (select e1.PRODUCT, e1.COMPONENT
from STRUCTURE e1
where e1.COMPONENT in (2)) e1 on e1.PRODUCT = e.PRODUCT
但是有没有更简单的方法呢?我想知道是否有一个我不知道的子句可以达到同样的效果。
非常感谢!
【问题讨论】:
-
EXISTS似乎是最简单的方法。
标签: sql sql-server where-clause