Запрос Microsoft Access - не возвращаются все данные - PullRequest
0 голосов
/ 22 февраля 2012

Предположим, у меня есть следующие таблицы:

  • Table1: FLP, FNAME, LNAME
  • Table2: FLP, Job, Company, Location
  • Table3: FLP, Статус, Зарплата, Позиция

Все связаны между собой FLP.

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

Select *
From Table1, Table2, Table3
Where Table1.FLP = Table2.FLP AND Table1.FLP = Table3.FLP

Однако предположим, что одна из таблиц не содержит информации или, следовательно, запись не имеет FLP.

Например: если я вставлен в table1 johndoe1, john, doe,
и в table2 johndoe1, developer, comp, usa,
, но ничего не вставил в таблицу 3, так как информация необязательна

мой запрос не будет извлекать результат, так как он потерпит неудачу при Table1.FLP= Table3.FLP

Иногда table2 не содержит никакой информации

Если я попробую свой запрос следующим образом

Select *
From Table1, Table2, Table3
Where Table1.FLP = Table2.FLP OR Table1.FLP = Table3.FLP

, тогда он будет получать все результаты, но смешивает их, например, johndoe1 будет иметь информацию изtable3, который не равен johndoe1, создавая тем самымle результаты с разными значениями.

Если нужно больше объяснений или реальный дизайн таблицы, пожалуйста, дайте мне знать.

1 Ответ

2 голосов
/ 22 февраля 2012

Вы должны использовать LEFT JOIN:

Select * From Table1 LEFT JOIN Table2 ON Table1.FLP = Table2.FLP LEFT JOIN Table3 ON Table1.FLP = Table3.FLP;

Это даст вам нулевую запись, если в правой таблице нет соответствующего элемента.

См .: http://msdn.microsoft.com/en-us/library/bb208894%28v=office.12%29.aspx

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