SQL Query获取常见记录

Tar*_*rak 4 sql select group-by distinct having

我有一张桌子如下

ID  Username GroupID
1   venkat     2
2   venkat     3
3   ramu       1
4   ramu       2
Run Code Online (Sandbox Code Playgroud)

使用sql语句我想检索groupids 2,3中可用的所有用户名

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

请帮助我

Sah*_*hah 10

试试这个:

SELECT userName
FROM tableA 
WHERE groupId IN (2, 3)
GROUP BY userName 
HAVING COUNT(DISTINCT groupId) = 2;
Run Code Online (Sandbox Code Playgroud)

检查SQL FIDDLE DEMO

OUTPUT

| USERNAME |
|----------|
|   venkat |
Run Code Online (Sandbox Code Playgroud)


Joa*_*son 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;
Run Code Online (Sandbox Code Playgroud)

一个要测试的SQLfiddle.