Есть две таблицы: таблица A и таблица B. Они имеют одинаковые столбцы, и данные практически идентичны. Они оба имеют автоматически увеличивающиеся идентификаторы, единственное различие между ними состоит в том, что они имеют разные идентификаторы для тех же записей.MYSQL: Избегайте декартовых произведений повторяющихся записей при самосоединении
Среди столбцов есть столбец IDENTIFIER, который не является уникальным, то есть (очень мало) записей с тем же IDENTIFIER в обеих таблицах.
Теперь для того, чтобы найти соответствие между идентификаторами таблицы А и идентификаторы таблицы B, я должен соединить эти две таблицы (для всех целей это автообъединение) на колонке IDENTIFIER, что-то как:
SELECT A.ID, B.ID
FROM A INNER JOIN B ON A.IDENTIFIER = B.IDENTIFIER
Но, будучи IDENTIFIER неуникальным, это порождает все возможные комбинации повторяющихся значений IDENTIFIER, я не хочу этого.
В идеале я хотел бы генерировать 12:59 связь между идентификаторами, которые повторив IDENTIFIER значения, в зависимости от их порядка. Например, предположим, что существует шесть записей с разными ID и тем же значением идентификатора в таблице А (и, таким образом, в таблице В):
A B
IDENTIFIER:'ident105', ID:10 -> IDENTIFIER:'ident105', ID:3
IDENTIFIER:'ident105', ID:20 -> IDENTIFIER:'ident105', ID:400
IDENTIFIER:'ident105', ID:23 -> IDENTIFIER:'ident105', ID:420
IDENTIFIER:'ident105', ID:100 -> IDENTIFIER:'ident105', ID:512
IDENTIFIER:'ident105', ID:120 -> IDENTIFIER:'ident105', ID:513
IDENTIFIER:'ident105', ID:300 -> IDENTIFIER:'ident105', ID:798
Это было бы идеально. В любом случае способ создания взаимноопределенной ассоциации независимо от порядка идентификаторов будет по-прежнему в порядке (но не предпочтительнее).
Спасибо за ваше время,
Сильвио
+1, так как вы меня в тупик ... – ircmaxell