В MySQL 8.x вы можете использовать ROW_NUMBER()
, чтобы определить, какие IP-адреса имеют несколько членов.
Например:
select id, name, last_name
from (
select m.*,
row_number() over(partition by l.ip_address
order by m.name, m.last_name) as rn
from members m
join logs l on l.member_id = m.id
) x
where rn = 2
РЕДАКТИРОВАТЬ MYSQL 5.7
Поскольку MySQL 5.x не имеет оконных функций, вы можете сделать:
select m.*
from members m
join logs l on l.member_id = m.id
where l.ip_address in (
select l.ip_address
from members m
join logs l on l.member_id = m.id
group by l.ip_address
having min(m.name) <> max(m.name) or min(m.last_name) <> max(m.last_name)
)
См. Пример работы в DB Fiddle .