Finding combinations of specific values

只谈情不闲聊 提交于 2019-12-31 05:47:11

问题


I don't know how to write the query for below.

My table is

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

I need to select distinct col1 id where both parameters exists in col2. eg. if i send 6,7 it should send me 5


回答1:


Try:

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



回答2:


This is probably among the fastest solutions:

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

Assuming a PRIMARY KEY or UNIQUE constraint on (col1, col2), like it's typically implemented. Else add DISTINCT.

There are many other ways to implement relational division. Here are some:

  • How to filter SQL results in a has-many-through relation


来源:https://stackoverflow.com/questions/41143947/finding-combinations-of-specific-values

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!