linq – 查找所有元素共有的值

我有一个包含两列的数据集如下;

Prod Value
A    1
A    2
A    3
B    2
B    4
C    1
C    2

所以我想要Prod常见的所有行,所以在上面的例子中只返回以下内容.

A   2
B   2
C   2 

LINQ或sql都会有所帮助

谢谢

最佳答案
--    DROP TABLE #t2  UNCOMMENT WHEN TESTING...

CREATE TABLE #t2
(
 Prod varchar(50),
 Value int
)

INSERT INTO #t2 VALUES ('A', 1)
INSERT INTO #t2 VALUES ('A', 2)
INSERT INTO #t2 VALUES ('B', 2)
INSERT INTO #t2 VALUES ('B', 4)
INSERT INTO #t2 VALUES ('C', 2)

SELECT 
    DISTINCT
    p1.Prod, 
    p2.Value 
FROM 
    #t2 p1
INNER JOIN 
    #t2 p2 
ON 
    p2.Value = p1.Value AND p1.Prod <> p2.Prod

这是一个基于SQL Server的解决方案:).

转载注明原文:linq – 查找所有元素共有的值 - 代码日志