Как найти одинаковые значения (совпадения) в 2-х таблицах?
Есть уже заполненная таблица с полями: ФИО, район, адрес, телефон (первая таблица).
Например ее значения: Иванов Иван Иванович; Советский район; Советская, 25; 8-999-888-77-66.
При регистрации пользователь заполняет: ФИО, район, адрес (вторая таблица).
Как найти совпадение этого пользователя с первой таблицей и добавить ему во вторую таблицу номер телефона? И какова будет погрешность, если, допустим, пользователей 100 000?
Спасибо.
Если у Вас адрес не нормализован по какому нибудь КЛАДР или ФИАС или хотя бы по полям таблицы (улица, дом, корпус, строение, квартира, итд) - полных совпадений скорее всего не будет.
По хорошему такие вещи надо делать по номеру паспорта или инн например, но у Вас их тоже нет.
Можно попробовать на php написать некую логику, которая будет выбирать однофамильцев, а дальше искать пересекающиеся слова в адресе. Но ошибочных срабатываний все равно будет море, нужна будет ручная валидация.
Районов около 30, есть еще буква дома. В примере не стал указывать. Я не думаю, что по одному адресу проживает много Ивановых И.И. С LIKE не получится так сделать?
@Simon_Barry тогда все упирается в то, насколько аккуратно забивались эти базы.
До какой то степени адрес можно нормализовать автоматически я думаю - пробелы, регистр букв итд, но человеческий фактор в виде опечаток никто не отменял.
Как вариант - можно прогнать поле улица через кладр, посмотреть много ли улиц которых нет в кладр - актуализировать их руками (вряд ли много будет)
После этого - простой запрос в SQL на поиск совпадений