外部联接访问

时间:2013-09-10 06:32:36

标签: ms-access outer-join ms-access-97

我共有3张桌子,分别是table1,table2& 3。

表2和表2中的数据3是相当巨大的,所以我想外连接table2& 3基于密钥,例如会员号码&在加入table1之前没有id。

    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 个答案:

答案 0 :(得分:0)

您加入的字段的数据类型是什么? 这将有助于我们获得一个想法。

如果您的大表都已编入索引或两者都未编入索引,请使用HASH JOIN。它的性能也会提高 链接在这里: http://www.sqlserverblogforum.com/2011/10/merge-join-vs-hash-join-vs-nested-loop-join/

答案 1 :(得分: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是主键。