Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Здравствуйте!
Есть таблица пользователей, есть имя firstname и фамилия lastname. У некоторых пользователей есть по 2 и более регистрации, мне нужно найти таких и вывести в список. То есть, кто зарегистрирован один раз их не трогаем, а если Иван Иванов три раза зарегистрирован то вывести должно примерно так:
Иван Иванов
Иван Иванов
Иван Иванов
Изменено betmenik (22.05.2020 10:40:46)
Не в сети
select *
from users usr
inner join (
select count(*) as cnt,
firstname,
lastname
from users
group by firstname, username
having cnt>1
) as u ON u.firstname = usr.firstname and u.lastname = usr.lastname
Не в сети
Только я вот не понимаю, зачем их выводить, если это могут быть 3 разных пользователя.
Не в сети
тем более если это Иванов Сергей Михайлович например
у меня не самая распространенная фамилия и то полных совпадений в сети не мало
Изменено vavprog (12.01.2021 15:06:12)
Не в сети
inner join (
select count(*) as cnt,
Зачем так сложно? Подзапрос не нужен, JOIN'ить таблицу можно саму на себя.
select count(*) as cnt,
u.firstname,
u.lastname
from users
join users u on users.firstname = u.firstname and users.lastname = u.lastname
group by u.firstname, u.username
having cnt > 1
Не в сети
select count(*) as cnt,
firstname,
lastname
from users
group by firstname, username
having cnt > 1
Не в сети