我共有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
答案 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是主键。