2013-09-10 8 views
0

Я 3 таблицы в целом, а именно table1, TABLE2 & 3.внешнее соединение доступа

данных в table2 & 3 довольно огромны, так что я хочу внешнее соединение таблица2 & 3 на основе ключей например участник нет & ID нет первый перед тем присоединение таблица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, может работать не так. Заранее спасибо!!

Приветствие VB

ответ

0

Каких типов данных полей вы вступающие на? Это поможет нам получить представление.

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

0

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

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 является первичным ключом.