SQL Query获取常见记录

时间:2013-12-24 12:40:14

标签: sql select group-by distinct having

我有一张表格如下

ID  Username GroupID
1   venkat     2
2   venkat     3
3   ramu       1
4   ramu       2

使用sql语句我想要检索groupids 2,3

中可用的所有用户名

在这种情况下,只有Venkat是groupid 2和3中可用的用户名

请帮助我

2 个答案:

答案 0 :(得分:10)

试试这个:

SELECT userName
FROM tableA 
WHERE groupId IN (2, 3)
GROUP BY userName 
HAVING COUNT(DISTINCT groupId) = 2;

检查SQL FIDDLE DEMO

<强>输出

| USERNAME |
|----------|
|   venkat |

答案 1 :(得分:6)

使用普通JOIN;

的替代方法
SELECT DISTINCT t1.username 
FROM MyTable t1 JOIN MyTable t2
  ON t1.username = t2.username AND t1.groupid=2 AND t2.groupid=3;

An SQLfiddle to test with