внешнее соединение в доступе

Всего у меня 3 таблицы, а именно table1, table2 и 3.

Данные в таблице 2 и 3 довольно велики, поэтому я хочу выполнить внешнее соединение с таблицей 2 и 3 на основе ключей, например. № члена и идентификатор № перед присоединением к таблице 1.

    SELECT 
A.field1, 
A.field2, 
A.field3, 
A.field20,

B.specialfield1, B.specialfield2,

C.specialfield7, B.specialfield8

FROM (table1 AS A LEFT JOIN table2 AS B 
ON (A.field1 = B.field1) 
AND (A.field2 = B.field2) 
AND (A.field3 = B.field3)) 
LEFT JOIN table3 AS C 
ON (A.field1 = C.field1) 
AND (A.field2 = C.field2) 
AND (A.field3 = C.field3))

Что я могу сделать? Я использую Access97, и кажется, что синтаксис, который я знал по SQL-серверу, может не работать прямо там. Заранее спасибо!!

Ура ВБ


person user2763639    schedule 10.09.2013    source источник


Ответы (2)


гм .. Я считаю, что это должно работать:

SELECT Table1.[field1], Table1.[field2], Table1.[field3], Table2.[field 1], Table3.[field 2]
FROM (Table1 INNER JOIN Table2 ON Table1.sno = Table2.fk_table1) INNER JOIN Table3 ON Table1.sno = Table3.fk_table1;

Примечание. Table1.sno — это первичный ключ.

person Master Uv Puppetz    schedule 10.09.2013

Каковы типы данных полей, к которым вы присоединяетесь? Это помогло бы нам получить представление.

Используйте HASH JOIN, если обе ваши большие таблицы проиндексированы или обе не проиндексированы. Его производительность также увеличивается Вот ссылка: http://www.sqlserverlogforum.com/2011/10/merge-join-vs-hash-join-vs-nested-loop-join/

person Community    schedule 10.09.2013