У меня есть две таблицы в базе данных Postgres:
Таблица A:
**Middle_name**
John
Joe
Fred
Jim Bob
Paul-John
Таблица B:
**Full_name**
Fred, Joe, Bobda
Jason, Fred, Anderson
Tom, John, Jefferson
Jackson, Jim Bob, Sager
Michael, Paul-John, Jensen
Иногда второе имя пишется через дефис или между ним пробел. Но в отчестве никогда не бывает запятой. Если это дефис или два отчества, записи будут одинаковыми как в таблице A, так и в таблице B.
Я хочу присоединиться к таблицам Middle_name
и Full_name
. Сложность в том, что объединение должно проверять только значения между запятыми в Full_name
. В противном случае оно может случайно совпадать с именем.
Я использовал приведенный ниже запрос, но я только что понял, что ничто не мешает ему случайно сопоставить второе имя с именем.
SELECT Full_name, Middle_name
FROM B
JOIN A
ON POSITION(Middle_name IN Full_name)>0
Мне интересно, как я могу реорганизовать этот запрос, чтобы он соответствовал только второму имени (при условии, что все они отображаются в одном формате).