In general, an N-way left deep nested loops join, with the order t1, t2, t3..., tN-1, tN is described by:
(join
(join
...
(join
(join
(scan t1)
(scan t2)
)
(scan t3)
)
...
(scan tN-1)
)
(scan tN)
)
This notation can be used as shorthand for the nl_join operator:
(nl_join
(scan t1)
(scan t2)
(scan t3)
...
(scan tN-1)
(scan tN)
)