Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Составление SQL-запросов > MySQL, выбрать одинаковые ники но разные ID


Автор: Black 11.11.2010, 23:20
Есть таблица. Там два поля, например:
login | id

Надо сделать такой запрос, чтобы вывести только такие логины у которых в базе есть два и более ID причем именно разных ID.
То есть, если есть такая таблица:

vasya  1
kolya  2
vasya 1
vasya 1
kolya 2
dima 3
dima 3
kolya 4

надо выбрать в итоге ник kolya так как ему есть два id 2 и 4

Не могу понять как составить такой запрос. 
Спасибо за помощь.

Автор: Akina 11.11.2010, 23:43
Код

SELECT DISTINCT t1.login
FROM tab AS t1
   , tab AS t2 
WHERE (t1.id <> t2.id) 
  AND (t1.login = t2.login);

Автор: Black 11.11.2010, 23:59
Спасибо. Только запрос очень очень долго выполняется не могу дождаться конца. Наверное, мне надо делать индексы.

Автор: Akina 12.11.2010, 09:20
Цитата(Black @  12.11.2010,  00:59 Найти цитируемый пост)
запрос очень очень долго выполняется не могу дождаться конца

Если СУБД позволяет- используй подзапрос.
Код

SELECT q1.login
FROM 
(
   SELECT DISTINCT tab.login, tab.id
   FROM tab
) AS q1
GROUP BY q1.login
HAVING Count(q1.id)>1;

Автор: Zloxa 12.11.2010, 09:55
Код

SELECT login
FROM  tab 
GROUP BY login
HAVING Count(distinct id)>1;

Автор: Akina 12.11.2010, 10:04
Цитата(Zloxa @  12.11.2010,  10:55 Найти цитируемый пост)
GROUP BY q1.login

q1 - лишнее...

Цитата(Zloxa @  12.11.2010,  10:55 Найти цитируемый пост)
Count(distinct id)

Не каждая СУБД это поймёт...

Автор: Zloxa 12.11.2010, 10:17
Цитата(Akina @  12.11.2010,  10:04 Найти цитируемый пост)
q1 - лишнее...

ах черт, спалился.... я думал я быстро исправился smile

Цитата(Akina @  12.11.2010,  10:04 Найти цитируемый пост)
Не каждая СУБД это поймёт... 

А кто не поймет, не можешь подсказть? Это вроде как ансевая штука.

Автор: Akina 12.11.2010, 10:41
Цитата(Zloxa @  12.11.2010,  11:17 Найти цитируемый пост)
кто не поймет, не можешь подсказть?

Попробуй в MS Access, например.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)