2016-04-08 32 views
0

我有一个MySQL列表,有两列,分别为user_1user_2。列数据可能有数据如下所示:mysql group by子句找到多个匹配点

user_1 | user_2 foo | bar foo | baz def | bar abc | def foo | bar abc | def

我有兴趣写一个查询,其中仅user_1user_2一个实例相匹配,即使是在多个场合。所以在这种情况下,abcdef发生了两次,并且abc没有任何其他的user_2比赛,所以这将是一个打击。 defbar匹配,以便返回总计2与上述abc匹配的计数。 foo在此查询中不匹配,因为它至少有一个以上的实例,其中user_2不唯一。

回答

1
SELECT * 
FROM (
     SELECT * 
     FROM table_name 
     GROUP BY user_1, user_2) AS temp 
GROUP BY user_1 
HAVING count(user_2) = 1;