日期:2014-05-16  浏览次数:20874 次

Access SQL语法不支持多个Left Outer Join吗?
Select   a.FClass,a.FParentID,b.FTemplateName   as   FParentName,a.FFormatID,a.FFormatName,a.FDefault,a.FVisible   from   t_pnt_form   a   left   outer   join   t_m_form   b   on   a.FParentID=b.FTemplateID   left   outer   join   t_menu_tvw_group   t   on   b.FParentID=t.FID

运行上面的语句报如下错误

其他信息:   语法错误   (操作符丢失)   在查询表达式   'a.FParentID=b.FTemplateID   left   outer   join   t_menu_tvw_group   t   on   b.FParentID=t.FID '   中。

去掉第二个left   outer   join
left   outer   join   t_menu_tvw_group   t   on   b.FParentID=t.FID
就可以,为什么,不支持多个left   outer   join吗?


------解决方案--------------------

每增加一个left join,增加一对().

如:

select *
from ((A
left join B on A.id=B.id)
left join C on A.id=C.id)

------解决方案--------------------
Select a.FClass,a.FParentID,b.FTemplateName as FParentName,a.FFormatID,a.FFormatName,a.FDefault,a.FVisible from
( t_pnt_form a left outer join t_m_form b on a.FParentID=b.FTemplateID )
left outer join t_menu_tvw_group t on b.FParentID=t.FID

------解决方案--------------------
JET SQL不是T-SQL,是有区别的,写两种SQL语句
------解决方案--------------------

Access使用的是Jet-SQL,SQL Server使用的是T-SQL,两者用法上相差很大。


JET SQL 帮助(jet4 access2000)下载地址

http://www.access911.net/index.asp?board=8&recordid=75FAB71E&tt=


但SQL Server 和Access都支持如下格式:

select *
from ((A left join B on A.id=B.id)
left join C on A.id=C.id)