Как мне объединить 4+ таблицы в Access с комбинацией внутренний / внешний? - PullRequest
5 голосов
/ 02 августа 2009

Мне не удалось найти способ объединения 4 или более таблиц с использованием внешнего объединения в MSAccess. Он работает в SQL Server, но не в Access. Я не верю, что это возможно. У меня есть таблицы A, B, C, D и E. Мне нужно объединить таблицы следующим образом:

  • Левое внешнее соединение B
  • Левое внешнее соединение C
  • Внутреннее соединение D
  • B внутреннее соединение E

Доступ не позволит вам использовать обычные объединения в предложении where, когда вы используете LEFT / RIGHT / INNER JOINS в предложении FROM. Если вы это сделаете, я получу очень и очень расплывчатые ошибки, такие как «выражение JOIN не поддерживается» или «синтаксическая ошибка (отсутствует оператор) в выражении запроса» Возможно, я смогу использовать сквозной запрос, но пока не знаю, как это сделать. Большинство таблиц, к которым я могу присоединиться, - это 3 с внешними объединениями, такими как:

ИЗ (Левое соединение B на A.b = B.b)
левое соединение C на A.c = C.c

Ничего не говорите о недопустимом ключевом слове "external", потому что хотя его нет в документации, оно принимает его.

Ответы [ 2 ]

5 голосов
/ 02 августа 2009

В Access вы можете присоединиться только к двум результатам одновременно. Чтобы объединить больше таблиц, вам нужно больше скобок:

from
   (
      (
         (
            A inner join D on D.id = A.id
         )
         left join B on B.id = A.id
      )
      inner join E on E.id = B.id
   )
   left join C on C.id = A.id
2 голосов
/ 02 августа 2009

Обходной путь для этого - использовать сохраненные запросы, чтобы присоединиться к вашей первой паре таблиц и наращивать, используя последовательные запросы оттуда. Это грязно, хотя некоторые предвидения относительно того, какие будущие пути доступа к данным потребуются, могут помочь сохранить разумную логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...