2016-04-08 33 views
0

İki sütunlu bir MySQL tablom var, user_1 ve user_2. Sütun veri aşağıdaki gibi verileri sahip olabilir:mysql group yan yana birçok isabet bul

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

Ben user_1 sadece user_2 ait bir örnekle eşleşen bir sorgu yazma ilgileniyorum, bu birden çok kez bile olsa. Bu durumda, abc ve def iki kez oluştu ve abc, başka bir user_2 eşleşmesine sahip olmadı, bu bir vuruş olur. def ve bar eşleşti; böylece, yukarıda belirtilen abc eşleşmesiyle toplam 2 sayısını döndürür. foo bu sorguda eşleşmez çünkü en az 1 örneğe sahip olduğu için user_2 benzersiz değildir.

cevap

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