MySQL-выберите несколько строк с одинаковыми значениями с одним, который должен быть другим

У меня есть таблица для используемых IP-адресов и связанного идентификатора пользователя. Теперь я знаю, как я бы выбрал несколько записей одного и того же IP, но как бы я пошел о выборе только нескольких записей с другим идентификатором пользователя?

2 ответа

  1. Можно использовать условную агрегацию по каждому ip-адресу и проверить, не связано ли с этим ip-адресом несколько пользователей.

    SELECT ip
    FROM yourTable
    GROUP BY ip
    HAVING COUNT(DISTINCT userid) > 1    -- or a higher number if you want
    
  2. вы можете использовать sql join do it for you
    Внутреннее соединение получает все записи из одной таблицы, которые имеют некоторые связанные записи во второй таблице

    LEFT JOIN получает все записи из левой связанной таблицы, но если вы выбрали несколько столбцов из правой таблицы, если нет связанных записей, эти столбцы будут содержать NULL

    Правое соединение, как и выше, но получает все записи в правой таблице

    Полное соединение получает все записи из обеих таблиц и помещает NULL в столбцы, где связанные записи не существуют в противоположной таблице

    SQL-соединения