|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
Есть запрос который выбирает дубли по 2 полям: Код: sql 1. 2. 3. 4. 5. 6. 7.
Он у меня выбирает дубли одновременно совпадают 2 поля phone и email А как можно сделать что бы дублями считались и такие записи: Это считается дублем: 89085769667 mail@mail.ru 89085769667 andrey@mail.ru Это тоже дубли: 89085769667 mail@mail.ru 89228235973 mail@mail.ru Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2019, 23:38 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11, А головой подумать, не? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 00:56 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
Если "в лоб" решать, то в простейшем варианте можно добавить ещё два запроса с соответствующими условиями и объединить результаты через UNION. Выражение clients.* выглядит странным. Какие конкретно данные (запись) оно должно вернуть, когда под условия выборки попадают несколько записей? Что-то вроде GROUP_CONCAT(id) кажется более внятным. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 01:25 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
Ребята, поверьте если бы я мог бы сделать сам или найти в сети, я бы тут не спрашивал, поэтому спасибо MikkiMouse за ах-ю помощь) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 08:13 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11, Почитайте про EXISTS. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 09:31 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
Вот так верно отрабатывает, но хочется узнать чисто для знания и наверно более грамотнее, можно обойтись без UNION? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 13:16 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11Это считается дублем: 89085769667 mail@mail.ru 89085769667 andrey@mail.ru Это тоже дубли: 89085769667 mail@mail.ru 89228235973 mail@mail.ruА вот это: 89085769667 mail@mail.ru 89085769667 andrey@mail.ru 89081234567 andrey@mail.ru ? В общем случае записи могут образовывать граф большого размера. Их все считать за одну группу? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 13:26 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
miksoftdok11Это считается дублем: 89085769667 mail@mail.ru 89085769667 andrey@mail.ru Это тоже дубли: 89085769667 mail@mail.ru 89228235973 mail@mail.ruА вот это: 89085769667 mail@mail.ru 89085769667 andrey@mail.ru 89081234567 andrey@mail.ru ? В общем случае записи могут образовывать граф большого размера. Их все считать за одну группу? Да это тоже... Вообще, система постоянно отслеживает появление таких записей и предлагает модератору объединить таких клиентов в одного, поэтому в реальности не будет больших объёмов. Отслеживание дублей нужно, потому что есть схема быстрого заказа, без регистрации - где предлагается ввести тел или почту... далее модератор уже решает в какого клиента слить дубли... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 13:40 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11система постоянно отслеживает появление таких записей и предлагает модератору объединить таких клиентов в одногоА чего сразу не поставить уникальные индексы, исключающие повторение номеров телефонов и почты? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 13:54 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
У ТС ветер в голове. Атрибуты phone и email независимы, никак не связаны друг с другом. Поэтому нужен простой select distinct phone union all select distinct email. Либо пусть попытается объяснить, что должно получиться здесь: phoneemail1a2a2b2c3c3a ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 13:58 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
vkledok11система постоянно отслеживает появление таких записей и предлагает модератору объединить таких клиентов в одногоА чего сразу не поставить уникальные индексы, исключающие повторение номеров телефонов и почты? Я же говорю, схема быстрого заказа есть, нужно максимально просто и быстро сделать покупку для посетителя, Вы же предлагаете мне проверить на дубль в системе и пользователю сообщить - типа такой тел или почта уже есть, Вы уже покупали у нас, давайте ищите свой логин и пароль и заходите... и тд и тп, кому нужно сами войдут под своими данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 14:11 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
Alibek B., Это всё сливаем в 1. Например был чел: email: mail@mail.ru Тел: 8888888888 Завтра он сменил номер, почта осталась прежней (или наоборот), модератор должен это отследить и принять решение куда (в какого клиента) слить дубли. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 14:21 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11Вы же предлагаете мне проверить на дубль в системе и пользователю сообщить - типа такой тел или почта уже есть, Вы уже покупали у нас, давайте ищите свой логин и пароль и заходите...Процитируйте, слова или фразу, где я это сказал. А фантазировать можете как Вам угодно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 16:17 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
vkle, авторА чего сразу не поставить уникальные индексы, исключающие повторение номеров телефонов и почты? Значит не будет возможности внести запись в БД, с дублем, правильно? Значит мне юзеру нужно чего то сказать, почему он не может купить "Здесь и сейчас", правильно? Спрашивается накой ему такие качели? Поэтому я так и написал... Нужно максимально упростить схему покупки, вот и всё) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 16:49 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11Завтра он сменил номер, почта осталась прежней (или наоборот), модератор должен это отследить и принять решение куда (в какого клиента) слить дубли. dok11где предлагается ввести тел или почту.. некоторое противоречие а как быть если введено только что-то одно? с другой стороны - человек сменил номер, но очень большая вероятность что этот номер достался от кого-то другого - будет ли правильным их объединять? но есть ещё вариант - у человека есть несколько номеров как бы 21794763 нормальный вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 16:55 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
вадяdok11Завтра он сменил номер, почта осталась прежней (или наоборот), модератор должен это отследить и принять решение куда (в какого клиента) слить дубли. dok11где предлагается ввести тел или почту.. некоторое противоречие а как быть если введено только что-то одно? с другой стороны - человек сменил номер, но очень большая вероятность что этот номер достался от кого-то другого - будет ли правильным их объединять? но есть ещё вариант - у человека есть несколько номеров как бы 21794763 нормальный вариант. Да, насчёт, достался от кого то другого и несколько номеров - Вы правы, но и оставлять так тоже не гуд, у нас есть покупашки которые делают постоянно покупки и пишут разные номера, а по сути это 1 клиент, очень неудобно работать с клиентской базой... Мы смотрели как сделано на популярных cms, там именно такой подход... Если есть варианты логики - буду рад услышать. В общем то есть регистрация в системе, в этом случае этот вопрос отваливается, но почти 45% совершают заказы "В 1 клик", откр. окно Ваш Е-маил и Тел, и кнопка отправить, в результате такая таблица с клиентами см. вложение... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 17:20 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11Значит не будет возможности внести запись в БД, с дублем, правильно?В общем, да, так как идентификатор пользователя (покупателя) уже имеется в базе. Его вполне можно определить и использовать в данной транзакции или покупке. dok11Значит мне юзеру нужно чего то сказатьНесомненно, нужно! dok11почему он не может купить "Здесь и сейчас", правильно?Это глупости, конечно. Скажите, покупателю, что рады его вновь видеть в магазине, что не забыли его, что по соответствию почтового адреса добавили в ЛК в качестве контактного новый его номер телефона или по соответствию номера телефона добавили новый почтовый адрес. dok11Нужно максимально упростить схему покупки, вот и всё)Гипотетически, на этапе оформления заказа можно было бы и адрес доставки предложить из прежних вариантов, которые использовал покупатель с ранее зафиксированным номером телефона или почтовым адресом. Они же есть в базе. Но делать этого нельзя, так как пользователь не авторизован и поэтому должен напечатать адрес ручками. А будь он авторизован - тады дело другое, тады проще. Вопросов валидности или подтверждения адреса и номера на данном этапе можно не касаться, хотя, вопрос безопасности, конечно, остается. Однако, в ЛК это можно автоматизировать по довольно простым алгоритмом, не слишком привлекая администратора для "слияния". dok11Спрашивается накой ему такие качели?Вообще, вариантов идентификации пользователя есть гораздо более двух. Насколько понимаю, в существующей схеме сущность "Покупатель" отсутствует, как таковая и Вы пытаетесь создать ее неявным образом, группируя некоторые признаки сущностей "Покупка". Ну так себе качели. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 17:46 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11, ну такие скрины лучше не выкладывать ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 18:11 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
авторЭто глупости, конечно. Скажите, покупателю, что рады его вновь видеть в магазине, что не забыли его, что по соответствию почтового адреса добавили в ЛК в качестве контактного новый его номер телефона или по соответствию номера телефона добавили новый почтовый адрес. В задницу они слали, наше приветствия и личные кабинеты, как я писал выше почти половину покупок совершается в 1 клик. Покупашке проще что бы ему тут же перезвонили и обтележили всё, доставку, сумму, скидки, и подарки.... Вообще, Вам не лень писать столько, вопрос же в другом... можете помочь? спасибо, здоровья, нет, проходите мимо... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 18:12 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
вадяdok11, ну такие скрины лучше не выкладывать Да от балды там инфа, конечно) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 18:13 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11вопрос же в другом... можете помочь?Выше я уже высказался по исходному вопросу, предложил вариант объединения нескольких запросов в один. Не годится такой вариант - так и скажите, что не годится. Мне лично такой вариант тоже не нравится. Будет ли он ресурсоемким? Несомненно, как любой статистический запрос по таблице в целом. dok11В задницу они слали, наше приветствия и личные кабинетыНе хотите - можете не говорить. Сам ЛК суть сущность "покупатель" с его контактными данными, историей покупок и т.п. Вне зависимости, заходит в него покупатель или нет. Вы же одновременно и пытаетесь определить покупателя по его данным и, если правильно Вас понимаю, отрицаете необходимость существования такой сущности как лишней. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 19:16 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
авторНе хотите - можете не говорить. Сам ЛК суть сущность "покупатель" с его контактными данными, историей покупок и т.п. Вне зависимости, заходит в него покупатель или нет. Вы же одновременно и пытаетесь определить покупателя по его данным и, если правильно Вас понимаю, отрицаете необходимость существования такой сущности как лишней. Да есть кабинет, я говорю пока не очень им пользуются, и очень кстати удобный, со всеми историями, сравнениями товаров и прочей ерундой. А покупка и заказ у нас по сути Вы правы разные сущности, заказ имеет вначале статус - как входящий, далее по мере исполнения статусы меняются (их всего может быть 7) и в итоге он может иметь статус выполнен - по сути Покупка... У нас как то так всё... Вообще то у нас при редактировании клиента выводится вся инфа за него по дублям, просто хотелось отдельно сделать выборку например раз в неделю - что видеть всю сводную по всем дублям. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 19:35 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11отдельно сделать выборку например раз в неделю - что видеть всю сводную по всем дублямВ принципе, для разовой задачи можно за производительность и ресурсы особо не волноваться. Лишь бы в ресурсы сервера не уперлись. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 21:14 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11, в таких условиях решение через union является наверно оптимальным, но не отражает реальных данных т.е. не позволяет однозначно связать всё в единую клиента-тел-мыло ... |
|||
:
Нравится:
Не нравится:
|
|||
26.01.2019, 22:08 |
|
Выборка дублей по 2-м полям
|
|||
---|---|---|---|
#18+
dok11нужно максимально просто и быстро сделать покупку для посетителя dok11Если есть варианты логики - буду рад услышать. Если задача именно такая - максимально упростить быстрый заказ,- то единственно правильная логика одна. И она очень простая - ничего не проверять и никакие дубли не искать. Делаете заказ, и всё. А вот если он захочет зарегаться, то тогда и начнёте после регистрации пытать вопросами типа "Вы указали мыло v.pupkin@host.ru с телефоном 111222333444, ранее у нас был заказ с тем же мылом, но телефоном 999888777666. Это тоже Ваш заказ, но у Вас изменился номер телефона? или это Ваш второй номер, и Вы хотели бы его также сохранить в профиле?" ... |
|||
:
Нравится:
Не нравится:
|
|||
28.01.2019, 08:25 |
|
|
start [/forum/topic.php?fid=47&msg=39765247&tid=1829349]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
133ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 296ms |
total: | 532ms |
0 / 0 |