У меня вопрос: у меня две таблицы: таблица A имеет два столбца (KeyA и Match), а таблица B имеет два столбца (KeyB и Match). Я хочу сравнить со столбцом «Совпадение».
Если в таблице A есть 3 строки с определенным «соответствием», а в таблице B 2 строки, JOIN вернет мне все комбинации (в данном случае 6). Я хочу, чтобы это соответствовало как можно большему количеству, а затем обнуляло остальных.
Таким образом, он будет сопоставлять первый «KeyA» с первым «KeyB», второй «KeyA» со вторым «KeyB», а затем сопоставлять третий «KeyA» с NULL, поскольку таблица B имеет только два ряды для этого «матча». Порядок на самом деле не имеет значения, поскольку совпадают 2 строки, а затем одно значение из таблицы A возвращается с NULL для значения таблицы B. Это не похоже на ВНУТРЕННЕЕ или НАРУЖНОЕ СОЕДИНЕНИЕ.
Надеюсь, это имеет смысл, это было трудно выразить ясно, и было трудно найти ключевые слова для поиска.
EDIT:
Соединение INNER / OUTER будет сопоставлять все значения таблицы A со всеми возможными значениями таблицы B. Как только значение B «израсходовано», я не хочу, чтобы оно совпадало с любыми другими значениями A.
Пример:
Таблица A (KeyA, Match)
(1, «а»)
(2, «а»)
(3, «а»)
Таблица B (KeyB, Match)
(11, "а")
(12, "а")
Желаемый вывод (KeyA, Match, KeyB):
(1, «а», 11)
(2, «а», 12)
(3, «а», NULL)