Как получить данные стиля матрицы, используя оператор SQL в MySQL, используя три таблицы - PullRequest
0 голосов
/ 30 марта 2020

У меня есть три таблицы, средняя таблица - это таблица «многие ко многим» (AB). Какой самый эффективный оператор SQL получить:

1 - Все записи из двух других таблиц (Таблица A и Таблица B) независимо от того, есть ли совпадающие данные в Таблице AB 2 - Каждая запись должна показывать true если две таблицы связаны (т. е. в результирующей таблице много-много есть повторная запись) или false, если она пуста

В основном я хочу отобразить матричную таблицу с первым столбцом, отображающим все записи из таблицы A, и в первой строке, показывающей все таблицы Рекродов B, затем должны быть отмечены пересекающиеся ячейки, если в таблице AB есть соответствующая запись.

Если я не возражаю, синтаксически проанализировать окончательный набор данных, если мне нужно

Спасибо

1 Ответ

0 голосов
/ 30 марта 2020

Попробуйте что-то вроде этого:

SELECT A.id AS "A id", B.id AS "B id", AB.id IS NOT NULL AS "Match"
FROM A
  JOIN B
    LEFT JOIN AB ON A.id = A_id AND B.id = B_id

У SQL Fiddle также есть предложение ORDER BY.

...