0

我总共有 3 张桌子,即 table1、table2 和 3。

表 2 和表 3 中的数据非常庞大,所以我想在加入表 1 之前先根据键(例如成员编号和 id 否)进行外部联接表 2 和 3。

    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

4

2 回答 2

0

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

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

于 2013-09-10T06:49:02.283 回答
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 是主键。

于 2013-09-10T06:49:35.370 回答