Объединение двух таблиц MySQL, которые слабо связаны

Итак, у меня есть две таблицы MYSQL в БД, которые не связаны (два разных источника данных) [около 500 000 строк в каждой]. У них есть такие вещи, как название компании, бизнес-адрес, город, штат, а также некоторая конкретная информация в каждой, которую я надеялся заполнить третьей таблицей, как только я выяснил, как «связать» их вместе.

Сначала я попытался связать их вместе, если название компании / город / адрес совпадали.

Проблема в том, что для многих строк нет точного соответствия между двумя таблицами. Таким образом, в одном название компании может быть «XYZ», в другом «XYZ Incorporated», то же самое касается некоторых адресов, это может быть «123 NW 10th St.» или «123 северо-западная десятая улица».

Так что теперь я пытаюсь найти способ найти «достаточно близкое» совпадение, и вот где я потерялся. Никогда не делал ничего подобного раньше, и не знал бы, с чего начать. Я думал, что смогу установить какой-то порог, при котором, если совпадение будет достаточно близким, я вставлю два идентификатора в другую таблицу, связав их вместе, для дальнейшей обработки.

(Базы данных в настоящее время InnoDB / MySQL)

Большое спасибо за любую помощь!

0

Решение

Я бы предложил создать View который объединяет две таблицы. Чтобы выяснить, какие поля соответствуют наиболее близко, я бы рекомендовал использовать расстояние «Левенштейна» или что-то более умное, например «Jaro / Winkler». Некоторое время назад я прошел через нечто подобное и написал об этом в блоге.

http://dannykopping.com/blog/fuzzy-text-search-mysql-jaro-winkler

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]