Мне нужно объединить две таблицы, которые хранят одно и то же имя, но пишутся по-разному. В одной таблице table1.name = 'A Jameson', а в другой таблице table2.name = 'Anthony Jameson'. Мне удалось объединить обе таблицы, используя это в запросе:
...
join table1 on substring_index(table1.name,' ',-1) like substring_index(table2.name,' ',-1)
...
Но, очевидно, он возвращает всех с совпадающей фамилией («Джеймс Джеймсон», «Карл Джеймсон» и т. Д.).
Есть ли способ взять самую длинную строку (таблица2) и сократить имя до начального?
, чтобы «Энтони Джеймсон» преобразовался в «Джеймсон», а затем сопоставить для присоединиться.
Это еще более осложняется тем фактом, что есть имена с 3 словами, например, «Крейг Б. Хендерсон» или «Веселая Мэри Бетелем».
В идеале все имена, кроме фамилии ( последнее слово) следует преобразовать в инициалы. Итак, «Крейг Б Хендерсон» -> «C B Хендерсон» и «Jolly Mary Bethelem» -> «J M Bethelem».
Спасибо