У меня есть база данных из 80 000 записей с двумя столбцами: uuid и sign_in_ip. Иногда, когда у пользователей есть несколько учетных записей, у них есть один sign_in_ip, но более одного UUID. Есть ли способ легко выбрать только те записи?Сравнение двух столбцов и дубликатов эха
ответ
Я полагаю, это может быть сделан с помощью внутреннего запроса, например:
SELECT *
FROM yourtablename
WHERE sign_in_ip IN (
SELECT sign_in_ip
FROM yourtablename
GROUP BY sign_in_ip
HAVING COUNT(DISTINCT uuid) > 1
);
Здесь вы выбираете все записи с sing_in_ip, который появляется более чем один раз. И чтобы найти это, не единственный sign_in_ip - это внутренний запрос.
Спасибо большое! Проблема, о которой я не упоминал, заключается в том, что «yourtablename» показывает журнал, а это означает, что каждый раз, когда пользователь регистрируется в нем, он оставляет запись. Таким образом, один пользователь с одним UUID может оставить несколько записей. Но мы хотим потушить их с помощью UUID и Unique IP. Если мы имеем 1 протоколирование пользователя в два раза на тот же счет, то мы имели бы: 'UUID: 123123, ф: 127.0.0.1' ' UUID: 123123, ф: 127.0.0.1' – Maciej
Но если у нас есть 1 пользователь дважды в два раза на разных учетных записях, которые у нас были бы: 'uuid: 123123, sign_in_ip: 127.0.0.1' и ' uuid: 321321, sign_in_ip: 127.0.0.1' И я хочу показать все UUID, которые появляются более одного раза с тем же IP. – Maciej
@Maciej обновил мой ответ, теперь он должен игнорировать те же uuids – Stanislav
Можете ли вы показать свой SQL с именами таблиц и именами столбцов, чтобы мы взяли его на следующий шаг. – randominstanceOfLivingThing
Вы должны попытаться показать, над чем вы работаете, каков ваш код, проблемы и пользователи попытаются найти решение. – McNets
Это всего лишь одна таблица с двумя столбцами - uuid и sign_in_ip. Что я хочу сделать, так это выбрать все записи, которые имеют один sign_in_ip, но несколько uuid. Когда у меня есть UUID, я буду знать, сколько пользователей и у каких пользователей есть несколько учетных записей. – Maciej