Mouvdy
@Mouvdy

Как составить SQL запрос?

Приветствую,

Решил почистить базу пользователей, но не могу разобраться с запросом.

Таблица user имеет следующий вид (сокращенно):

id | username | pass | ref | ip

ref = реферал, принимает значение id того, человека, который привел пользователя.

Чтобы найти пользователей у которых IP >=15 одинаковым (накрутчики) делаю следующий запрос

Select * from user

where ip in
(
  select ip from
  (
    select ip
    from user
    group by `ip` having count(*)>=15
  ) as arbitraryTableName
)

// не обращаем внимания на arbitraryTableName нужен был для update
Здесь все хорошо.

Теперь по этому принципу нужно сделать ref=id чтобы найти "главный" аккаунт и его забанить, по сути должно быть что-то подобное

select * from user

where id in
  (
    select ref
    from user
    group by `ip` having count(*)>=15
  )


Но запрос выполняется крайне долго, минут уже 40. Скорее всего где-то ошибка, перепробовал и массу других вариантов.. Просьба подсказать.
  • Вопрос задан
  • 133 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы