访问SQL - 连接多个表

时间:2018-05-15 15:51:19

标签: sql ms-access join

当使用多个“ON”条件时,我在Access SQL中遇到了连接错误。我无法在2个不同的表上执行ON子句,例如:

select * 
from
(((A 
left join B on a.id = b.id)
left join c on c.id = b.id)
left join D
on (d.id = b.id) and (d.id = a.id)

最后的连接语句导致错误,因为我首先在表B上链接表D,然后在表A上链接表D.如果我选择再次在表B上链接表D,则它会解析。但是,我需要以这种方式加入它,因为我需要从两个表中链接表D所需的某些数据。

如何更有效地构建查询以实现我的结果?

2 个答案:

答案 0 :(得分:0)

你可以试试这个选择*来自a左侧连接B a.id = b.id左侧连接c位于c.id = b.id左侧连接D位于d.id = b.id和d.id = a .ID

答案 1 :(得分:0)

要说明你要做的事情有点难以理解,但最有可能的是,这就是你想要的:

select * 
from
(((A
left join B on a.id = b.id)
left join C on c.id = b.id)
left join D on d.id = a.id)

由于您正在尝试LEFT JOIN,因此没有理由将多个ID链接到彼此。