2

我已经简化了这个例子,但希望这个例子能提供足够的内容来解释。

如果我有如下表...

ITEM GROUP
---- ----- 
 A     1
 B     1
 C     1
 D     2
 E     2
 F     3
 G     4

...并且为我提供了项目 A、B、D 和 F,我想构建一个查询,该查询将返回这些详细信息以及相关组 C 和 E 中的其他项目。

似乎我应该能够进行某种内部联接,但我不清楚如何做到这一点。由于环境的限制,最好在单个查询中完成。

非常感谢!

4

1 回答 1

5

如果我理解正确,这将起作用。

SELECT item,
       group_num
  FROM table_name
 WHERE grroup_num IN (SELECT group_num
                        FROM table_name
                       WHERE item IN ('A', 'B', 'D', 'F'))

你也可以把它写成EXISTS

SELECT item,
       group_num
  FROM table_name a
 WHERE EXISTS( SELECT 1
                 FROM table_name b
                WHERE a.group_num = b.group_num
                  AND b.item IN ('A','B','D','F') )
于 2012-05-03T15:55:22.990 回答