请问一个sql连接查询有关问题

   阅读
请教一个sql连接查询问题?
最近用连接查询,开始写的是
 select o.id, o.parentOwnerId, o.no, o.realName, a.id, a.acctName, a.acctNo, a.accountType, a.currency, a.enabled
from Owners o LEFT JOIN Account a LEFT JOIN Accountamount aa on o.id = a.ownerId and a.id = aa.AccountId 
where o.enabled = 1 and a.nominalAccount = 0 and aa.queryDateTime = (select max(ab.queryDateTime) from Accountamount ab where ab.accountId = aa.accountId)
这样写直接报错,提示在where开始那儿语法错误,后来调了下顺序
 select o.id, o.parentOwnerId, o.no, o.realName, a.id, a.acctName, a.acctNo, a.accountType, a.currency, a.enabled
from Owners o LEFT JOIN Account a  on o.id = a.ownerId LEFT JOIN Accountamount aa on a.id = aa.AccountId
where o.enabled = 1 and a.nominalAccount = 0 and aa.queryDateTime = (select max(ab.queryDateTime) from Accountamount ab where ab.accountId = aa.accountId)
这样就ok, 结果也正确。
原本以为两者应该是一样的,但看来是错了。但错在哪儿不明白阿,对于join on的限定,有时写的正确,有时写的就报语法错误,无比的迷糊,哪位高手给指点下?
------解决方案--------------------
o.id = a.ownerId and a.id = aa.AccountId 
主要是这里的问题   and属于限制条件 要在where后面的   left jion 后面应该直接跟条件的
------解决方案--------------------
多个和两个是类似的;
left join tableName on ...
left join tableName on...
left join tableName on...
where ....
阅读