По сути, когда запрос MS Access ссылается на более чем две таблицы, каждое последующее соединение между парой таблиц должно быть вложено в круглые скобки.
Например, запрос с двумя таблицами не требует скобок:
![enter image description here](https://i.stack.imgur.com/u3yOQ.png)
select *
from a inner join b on a.id = b.id
Добавление третьей объединенной таблицы требует скобок, окружающих исходное объединение, чтобы отличить его от дополнительного объединения:
![enter image description here](https://i.stack.imgur.com/17BPX.png)
select *
from
(
a inner join b on a.id = b.id
)
inner join c on a.id = c.id
Каждое последующее добавление таблицы приведет к тому, что существующие объединения будут вложены в скобки другого уровня:
![enter image description here](https://i.stack.imgur.com/gbOjy.png)
select *
from
(
(
a inner join b on a.id = b.id
)
inner join c on a.id = c.id
)
inner join d on a.id = d.id
Следовательно, в общем:
select *
from
(
(
(
(
table1 [inner/left/right] join table2 on [conditions]
)
[inner/left/right] join table3 on [conditions]
)
[inner/left/right] join table4 on [conditions]
)
...
)
[inner/left/right] join tableN on [conditions]
Существует тонкость, касающаяся LEFT/RIGHT
объединений, в том, что порядок вложения должен поддерживать направлениеобъединения, например:
![enter image description here](https://i.stack.imgur.com/6N9Fp.png)
select *
from
(
c left join b on c.id = b.id
)
left join a on a.id = b.id
Может быть переставлено в:
select *
from
c left join
(
b left join a on b.id = a.id
)
on c.id = b.id