首页 > 解决方案 > 如何在 SQL 中选择具有所有 id 的记录?

问题描述

我想要选择具有所有 id 的记录。

例子:

姓名 ID
内存 3
阿杰 1
莫干山 3
内存 1
内存 2

这里 Ram 有所有的 id (1,2,3)。所以,我想要结果为 Ram。

标签: sql

解决方案


WITH CTE(NAME,CODE)AS
(
  SELECT 'RAM',1 UNION ALL
  SELECT'AJAY',3 UNION ALL
  SELECT 'MOGAN',2 UNION ALL
  SELECT 'KUMAR',3 UNION ALL
  SELECT 'RAM',2 UNION ALL
  SELECT 'JAYA',1 UNION ALL
  SELECT 'KABIL',3 UNION ALL
  SELECT 'RAM',3
)

SELECT C.NAME
FROM CTE AS C
GROUP BY C.NAME
HAVING COUNT(DISTINCT C.CODE)=(SELECT COUNT(DISTINCT CODE) FROM CTE )

据我所知,这叫做“关系划分”。您可以尝试我的查询或寻找其他可能的解决方案


推荐阅读