В таблице [member] некоторые строки имеют одинаковое значение для email
столбца.
login_id | email
---------|---------------------
john | john123@hotmail.com
peter | peter456@gmail.com
johnny | john123@hotmail.com
...
Некоторые люди использовали другой login_id, но тот же адрес электронной почты, для этого столбца не было установлено никаких уникальных ограничений. Теперь мне нужно найти эти строки и посмотреть, должны ли они быть удалены.
Какой оператор SQL я должен использовать, чтобы найти эти строки? (MySQL 5)
count(1)
работает одинаково хорошо, и является более производительным. (Узнал этот трюк от переполнения стека ;-)count(1)
stackoverflow.com/questions/2710621/…источник
Вот запрос для поиска
email
, которые используются для более чем одногоlogin_id
:Вам понадобится второй (вложенный) запрос, чтобы получить список
login_id
поemail
.источник
Первая часть принятого ответа не работает для MSSQL.
Это сработало для меня:
источник
используйте это, если ваш почтовый столбец содержит пустые значения
источник
Я знаю, что это очень старый вопрос, но это больше для кого-то, у кого может быть такая же проблема, и я думаю, что это более точно соответствует тому, что нужно.
Это вернет все записи, которые имеют john123@hotmail.com в качестве значения login_id.
источник
Спасибо, ребята :-) Я использовал ниже, потому что я заботился только об этих двух столбцах, а не столько об остальных. Работал отлично
источник
Получите всю запись, как вы хотите, используя условие с внутренним запросом выбора.
источник