MS Access在同一个字段上加入三个表

时间:2018-01-05 20:55:02

标签: sql ms-access

我有以下表格

t1:     t2:        t3:
id      id  f1     id  f2
1       1   a      3   a
2       2   b      4   b
3       3   c      5   c
4
5

我试图获得以下结果

t4:
id    f1    f2
1     a
2     b
3     c     a
4           b
5           c

我使用以下查询

SELECT t1.id, t2.f1, t3.f2 
FROM (t1 
LEFT JOIN t2 ON t1.id = t2.id) AS a 
LEFT JOIN t3 ON t1.id = t3.id

它可以工作,但查询需要一段时间才能运行。有一个更好的方法吗?感谢

1 个答案:

答案 0 :(得分:0)

提供一个不涉及其他表的替代方法:您可以尝试构造SQL以执行嵌套SELECT查询,以便只为每个SELECT查询连接表,但是我怀疑这会比你拥有的东西有显着改善:

SELECT tmp.id, tmp.f1, t3.f2
FROM 
    (SELECT t1.id, t2.f1 FROM t1 LEFT JOIN t2 ON t1.id = t2.id) AS tmp
    LEFT JOIN t3 ON tmp.id = t3.id