2015-03-22 5 views
0

Привет парень Интересно, если это возможно,MYSQL - группа по кличке, но показывающая все разные версии?

В настоящее время у меня есть таблица:

"(consensus CHAR(40) NOT NULL," 
+ "identityb32 CHAR(40) NOT NULL," 
+ "pubdate CHAR(40) NOT NULL," 
+ "dirport CHAR(6) NOT NULL," 
+ "ip CHAR(40) NOT NULL," 
+ "orport CHAR(40) NOT NULL," 
+ "fingerprint CHAR(40) NOT NULL," 
+ "nick CHAR(40) NOT NULL," 
+ "version CHAR(40) NOT NULL," 
+ "flags VARCHAR(500) NOT NULL," 
+ "identity VARCHAR(256) NOT NULL," 
+ "digest CHAR(40) NOT NULL," 
+ "pubtime CHAR(40) NOT NULL)" 
) 

У меня есть много данных, вставленных в эту базу данных большинство из них дублируют, однако то, что я хочу сделать, это поиск в таблице, и только выводить результаты, где прозвище имеет более одного отпечатка пальцев

в настоящее время я использую код:

SELECT nick, fingerprint, identity, ip, consensus FROM agorahooawayyfoe group by fingerprint; 

, чтобы сделать это, но это показывает мне все группы прозвищ по идентификатору, все 2000 из них, что я хочу, это сузить это, чтобы показать только результаты, когда ник имеет более 1 единицы и группировать i этими

is это возможно в команде mysql?

ответ

2

Если вы хотите увидеть, прозвища, которые имеют более одного отпечатка пальца, а затем использовать агрегацию и имеющий:

select nick 
from agorahooawayyfoe 
group by nick 
having count(distinct fingerprint) > 1; 

Если вы хотите детали, а затем присоединиться к этой спиной к столу:

select a.* 
from agorahooawayyfoe a join 
    (select nick 
     from agorahooawayyfoe 
     group by nick 
     having count(distinct fingerprint) > 1 
    ) n 
    on a.nick = n.nick; 
+0

отличная agorahooawayyfoe будет ошибкой для unk я думаю, @Gordon Linoff? –

+0

@ A.B. , , Да, это должно быть имя столбца, а не имя таблицы. –

+0

Я буквально думал, что мне не хватает знаний, как это было на вашей стороне –

Смежные вопросы