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

Всего у меня 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, может не работать прямо там. Заранее спасибо!!

Ура VB

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

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

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

Другие вопросы по тегам