Допустим, есть три таблицы A
, B
и C
, где
Таблица A:
╔═══════╗
║ col_1 ║
╠═══════╣
║ a ║
║ b ║
║ c ║
╚═══════╝
Таблица B:
╔═══════╗
║ col_2 ║
╠═══════╣
║ o ║
║ p ║
║ q ║
╚═══════╝
Таблица C - это:
╔═══════╗
║ c_col ║
╠═══════╣
║ x ║
║ y ║
║ z ║
╚═══════╝
Допустим, существует связь «многие ко многим» между таблицей A и таблицей C через таблицу сопоставления A_to_C
, показанную ниже:
╔═══════╦═══════╗
║ col_1 ║ c_col ║
╠═══════╬═══════╣
║ a ║ x ║
║ a ║ y ║
║ b ║ y ║
║ b ║ z ║
║ c ║ x ║
╚═══════╩═══════╝
Кроме того, существует связь «многие ко многим» между таблицей B и таблицей C через таблицу отображения B_to_C
, показанную ниже:
╔═══════╦═══════╗
║ col_2 ║ c_col ║
╠═══════╬═══════╣
║ o ║ y ║
║ o ║ z ║
║ p ║ x ║
║ q ║ x ║
║ q ║ y ║
╚═══════╩═══════╝
Для значения 'b'
in col_1
и значение 'q'
в col_2
Мне нужно получить результат как:
╔═══════╦═══════╦════════╗
║ c_col ║ col_1 ║ col_2 ║
╠═══════╬═══════╬════════╣
║ x ║ NULL ║ q ║
║ y ║ b ║ q ║
║ z ║ b ║ NULL ║
╚═══════╩═══════╩════════╝
, который позже можно преобразовать в:
╔═══════╦═══════╦═══════╗
║ c_col ║ col_1 ║ col_2 ║
╠═══════╬═══════╬═══════╣
║ x ║ False ║ True ║
║ y ║ True ║ True ║
║ z ║ True ║ False ║
╚═══════╩═══════╩═══════╝
Я задал похожий вопрос здесь но в этом случае из-за множества связей с дублирующимися значениями столбцов я не смогу достичь вышеуказанного результата без дублирующих столбцов, используя решение по приведенной выше ссылке.