powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / выборка повторяющихся значений
13 сообщений из 13, страница 1 из 1
выборка повторяющихся значений
    #38633198
alc0g0l1c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите с запросом!

Есть следущая таблица
idfioadr1aaahome12bbbhome23ccchome34dddhome15eeehome46fffhome2
Id ключ, fio фио человека, adr адрес где он проживает!
Нужно выбрать всех людей которые живут вместе
Должно получится следущее
fioadraaahome1dddhome1bbbhome2fffhome2

Подскажите как реализовать данный 3апрос!
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38633202
alc0g0l1c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Точнее надо выбрать всех жителей которые нивут не одни!
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38633204
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсортируй по адресу, и всё...
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38633223
alc0g0l1c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AkinaОтсортируй по адресу, и всё...
Но тогда в результат попадет то, чего там не должно а именно home3 и home4 при сортировке никуда не исчезнут
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38633230
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
select a.*
from addresses a
where exists(
  select 1
  from addresses b
  where b.adr=a.adr and b.id<>a.id
  );
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38633712
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007,

капец...поругал джоины сударя, так он теперь их не хочет использовать :)

Код: sql
1.
2.
3.
select a.* from address a join address b on (a.adr = b.adr and a.fio<> b.fio)
where b.fio NOT NULL
ORDER BY a.adr, a.fio
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38634464
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453Cygapb-007,

капец...поругал джоины сударя, так он теперь их не хочет использовать :)

Код: sql
1.
2.
3.
select a.* from address a join address b on (a.adr = b.adr and a.fio<> b.fio)
where b.fio NOT NULL
ORDER BY a.adr, a.fio

Не понял?

С джоинами засада в чем - если больше двух строк, то вместо одной строки будет произведение ее с остальными (для N, например, вместо N выдаст N*(N-1) строк), а exists - ищет первую попавшуюся и на этом успокаивается:)
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38634570
alex564657498765453
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cygapb-007alex564657498765453Cygapb-007,

капец...поругал джоины сударя, так он теперь их не хочет использовать :)

Код: sql
1.
2.
3.
select a.* from address a join address b on (a.adr = b.adr and a.fio<> b.fio)
where b.fio NOT NULL
ORDER BY a.adr, a.fio

Не понял?

С джоинами засада в чем - если больше двух строк, то вместо одной строки будет произведение ее с остальными (для N, например, вместо N выдаст N*(N-1) строк), а exists - ищет первую попавшуюся и на этом успокаивается:)

эт понятно, я подошол с другой стороны, что индексы всётаки существуют в таблице, и корелированный подзапрос - это перечитывание всей таблицы данных, и для каждой строчки выполнение корелированного, а вот с джоином, будет просто быстрее.... суть работы таже, но более оптимально мускл выполнит...
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38634666
Cygapb-007
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alex564657498765453эт понятно, я подошол с другой стороны, что индексы всётаки существуют в таблице, и корелированный подзапрос - это перечитывание всей таблицы данных, и для каждой строчки выполнение корелированного, а вот с джоином, будет просто быстрее.... суть работы таже, но более оптимально мускл выполнит...1) кто сказал, что в коррелированном подзапросе не будет использован индекс?
2) не смущает, что при JOIN будет очень много одинаковых строк? Или еще и DISTINCT вешать?
Код: sql
1.
select * from addresses

idfioadr1fio1adr12fio2adr13fio3adr14fio4adr2

Код: sql
1.
2.
3.
4.
5.
6.
7.
select * 
from addresses a
where exists(
   select 1
   from addresses b 
   where b.adr=a.adr and b.fio<>a.fio
   )

idfioadr1fio1adr12fio2adr13fio3adr1
Код: sql
1.
2.
3.
select * 
from addresses a
join addresses b on b.adr=a.adr and b.fio<>a.fio

idfioadridfioadr1fio1adr12fio2adr11fio1adr13fio3adr12fio2adr11fio1adr12fio2adr13fio3adr13fio3adr11fio1adr13fio3adr12fio2adr1
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38634785
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alc0g0l1cПомогите с запросом!

Есть следущая таблица
idfioadr1aaahome12bbbhome23ccchome34dddhome15eeehome46fffhome2
Id ключ, fio фио человека, adr адрес где он проживает!
Нужно выбрать всех людей которые живут вместе
Должно получится следущее
fioadraaahome1dddhome1bbbhome2fffhome2


Подскажите как реализовать данный 3апрос!

как вариант:

селект аддресс
груп_конкат(фио)
груп бу адресс
хавинг коунт(1) > 1
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38638277
alc0g0l1c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cygapb-007
Код: sql
1.
2.
3.
4.
5.
6.
7.
select a.*
from addresses a
where exists(
  select 1
  from addresses b
  where b.adr=a.adr and b.id<>a.id
  );




alex564657498765453Cygapb-007,

капец...поругал джоины сударя, так он теперь их не хочет использовать :)

Код: sql
1.
2.
3.
select a.* from address a join address b on (a.adr = b.adr and a.fio<> b.fio)
where b.fio NOT NULL
ORDER BY a.adr, a.fio



Оба запроса работают, но оба выдают разный результат!
С ехзистом выполняется 19,5сек, результат выводится за 14,3 сек и выбирается 184837 строк,
С джоином выполняется 34,2сек, результат выводится за 5,51 сек и выбирается 324494 строк,

Заметил что в таблице могут присутствовать более 2х с адним адресом, иногда и до 10 чел на один и тот же адрес приходится!
Всего в таблице порядка 1 000 000 строк! :-)

Результат с джоином мне кажется более правильным! :-)
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38638278
alc0g0l1c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
javajdbc
как вариант:

селект аддресс
груп_конкат(фио)
груп бу адресс
хавинг коунт(1) > 1

Не понял что вы хотели этим сказать! :-)
...
Рейтинг: 0 / 0
выборка повторяющихся значений
    #38638282
Фотография javajdbc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
select 
  adr,
  group_concat(fio) fios
from 
  addresses
group by 1
having count(1) > 1
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / выборка повторяющихся значений
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]