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

貌似老问题,Access的left join问题
select   tst.fTournamentYear,   tst.fTournamentMonth,   '业余组 '   as   fGroup,   tstsd.fSongID,   tstsd.fSongName,   tstsd.fSongLevel,   tstsd.fSongNoteWriter,   tc.fName
    from   TSuperiorTournament   as   tst,
              TSuperiorTournamentSongDetail   as   tstsd   left   join   (select   *   from   TCode   where   fType   =   'QF ')   as   tc   on   tstsd.fSongGenre   =   tc.fCode
  where   tst.fAmateur_1st_Song   =   tstsd.fSongID

其中TSuperiorTournament和TSuperiorTournamentSongDetail是主从表,TCode是代码表。提示错误:不支持查询连接。

如果删了from的上面一行或者下面一行都没问题(当然select也要跟着改改)。

用惯了sql   server,很不习惯access的语法额....   请大家帮忙。

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


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


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

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


------解决方案--------------------
Access的表关联,不论inner join 还是left join,每增加一个表,都需要增加一对(),如:


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