#sql #ms-access
#sql #ms-access
Вопрос:
Теперь у меня есть три базы данных, и я хочу получить данные из 2 таблиц в другой базе данных.
Например, ledger
таблица в master
базе данных, book
таблица в general
базе данных.
Итак, сначала я написал запрос следующим образом
select *
from master.ledger, general.book
Отображается ошибка.
Не удалось найти файл в C:Documents и Настройки MyDocuments…
Затем я написал запрос, подобный этому
select *
from ledger, book IN 'C:Documents and SettingsUserDesktop2014fa.mdb',
'C:Documents and SettingsUserDesktop2014general.mdb'
Это также показывает ошибку
‘Синтаксическая ошибка в предложении From’
Но если я использую одну базу данных, например
select *
from ledger IN 'C:Documents and SettingsUserDesktop2014fa.mdb';
это работает правильно. Как я могу подключить несколько баз данных в запросе выбора?
Комментарии:
1. Запятые не помогут. Почему бы просто не связать таблицы?
2. Смотрите office.microsoft.com/en-ie/access-help/…
Ответ №1:
Связанные таблицы — самый простой способ, но вы также можете сделать это следующим образом:
SELECT TblA.*, TblB.* FROM [;DATABASE='C:Documents and SettingsUserDesktop2014fa.mdb'].Master AS tblA
INNER JOIN [;DATABASE='C:Documents and SettingsUserDesktop2014general.mdb'.[General] AS TblB
ON tblA.SomeField=tblB.SomeField
Конечно, это предполагает, что у вас есть общее поле между ними.
Комментарии:
1. Согласен — и я указал, что связанные таблицы проще всего.
2. Это необходимо там, где связанная таблица невозможна. Пути к БД будут меняться каждый раз, мы можем выбирать динамически или с помощью кода.