查找特定值的组合

时间:2016-12-14 13:33:33

标签: sql postgresql relational-division

我不知道如何编写下面的查询。

我的桌子是

col1 col2 
5   1
5   5
5   6
5   7
4   5
4   8
4   9
4   3
3   3
3   5

我需要选择不同的col1 id,其中两个参数都存在于col2中。 例如。如果我发送6,7它应该发送给我5

2 个答案:

答案 0 :(得分:1)

这可能是最快的解决方案之一:

SELECT col1  -- already DISTINCT?
FROM   tbl t1
JOIN   tbl t2 USING (col1)
WHERE  t1.col2 = 6
AND    t2.col2 = 7;

假设PRIMARY KEY上有UNIQUE(col1, col2)约束,就像通常实施的那样。否则添加DISTINCT

还有许多其他方法可以实现关系划分。以下是一些:

答案 1 :(得分:0)

尝试:

SELECT col1
FROM mytable
WHERE col2 IN (6, 7)
GROUP BY col1
HAVING COUNT(DISTINCT col2) = 2