SQL выберите пользователя, сгруппированного по ip, и выберите всех других пользователей с такими же ips в одной таблице. - PullRequest
0 голосов
/ 06 марта 2011

Как должен выглядеть запрос SQL SELECT, если я хочу выбрать определенного пользователя (т. Е. WHERE username = 'peter') Сгруппировать все строки по ip и SELECT всех остальных пользователей, имеющих одинаковые IP-адреса?

Этосодержимое таблицы с полями: id, ip, username

1 |192.0.0.1 |Питер
2 |192.0.0.1 |домкрат
3 |192.0.0.2 |Питер
4 |192.0.0.3 |Джастин
5 |192.0.0.2 |justin

Выполнение необходимого запроса SQL SELECT должно быть выбрано так (с WHERE username = 'peter'):

2 |192.0.0.1 |домкрат
5 |192.0.0.2 |Джастин

Это запрос SELECT с выбранными строками имен пользователей, которые имеют одинаковые IP-адреса с целевым именем пользователя 'peter'.

Может кто-нибудь помочь мне с этим?

Заранее спасибо!

Ответы [ 3 ]

2 голосов
/ 06 марта 2011
SELECT *
FROM your_table
WHERE ip_address IN (SELECT ip_address
                     FROM your_table
                     WHERE user_name = 'peter')
    AND user_name <> 'peter'
2 голосов
/ 06 марта 2011
SELECT *
FROM your_table
WHERE ip_address IN (SELECT ip_address
                     FROM your_table
                     WHERE user_name = 'peter');
0 голосов
/ 06 марта 2011
SELECT t1.*
FROM iptable t1
  INNER JOIN iptable t2 ON t1.ip = t2.ip AND t1.username <> t2.username
WHERE t2.username = 'peter'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...