Multiple LEFT JOINs - what is the "left" table?

Viewed 8835

I've been using this for years, so it is high time to understand it fully. Suppose a query like this:

SELECT 
  *
FROM a
LEFT JOIN b ON foo...
LEFT JOIN c ON bar...

The documentation tells us that

T1 { [INNER] | { LEFT | RIGHT | FULL } [OUTER] } JOIN T2 ON boolean_expression

LEFT OUTER JOIN

First, an inner join is performed. Then, for each row in T1 that does not satisfy the join condition with any row in T2, a joined row is added with null values in columns of T2. Thus, the joined table always has at least one row for each row in T1.

The question is simple: what is T1 in this case? Is it a? Or is it a LEFT JOIN b ON foo? (or, is it the same?)

3 Answers
Related