Why this is failing?

time to read 3 min | 494 words

Consider the following query (heavily reduced and thus rendered meaningless)...

select  *

from    Users user0_,

        Forum forum1_,

        Messages message2_

        left outer join Users user3_ on forum1_.Manager = user3_.Id

If you will try to run it, it will fail, complaining:

The multi-part identifier "forum1_.Manager" could not be bound.

This is even though this should work. I run the same query on MySQL, and it passed cleanly (although this is not saying anything, of course :-) ). I currently don't have a handy Oracle box to test this, so I have to rely on just those two data points. It works on MySQL, fails in MS SQL.

The issues seems to be the orderring in the from clause. If I replace Forum and Messages, it works, but I am not sure why.