2012-12-18 61 views
1
SELECT eventID, 
     eventRedacteur, 
     eventEvenement, 
     eventGenreId, 
     eventDatum, 
     eventLocatieId, 
     eventLocatieNaam, 
     eventPlaatsId, 
     eventBijzonderheden, 
     eventBezoekers, 
     lokId, 
     lokNaam, 
     lokUrl, 
     pltsId, 

     (SELECT pltsNaam 
     FROM tblAgendaPlaatsen 
     WHERE pltsId=tblAgendaPunten.eventPlaatsId) AS eventPlaatsNaam, 

     (SELECT genreNaam 
     FROM tblAgendaGenre 
     WHERE genreId=tblAgendaPunten.eventGenreId) AS eventGenre, 
     lokadres, 
     lokhuisnr 
FROM tblAgendaPunten 
LEFT JOIN tblAgendaLocaties ON eventLocatieId=tblAgendaLocaties.lokId 

我得到一个不支持连接的错误。sql语句访问sql

我也尝试在Access中重制SQL,但没有运气。

任何人都可以帮忙吗?

+1

确定错误与此查询有关吗?你能否用* exact *错误信息更新你的文章? –

+1

尝试在连接的ON子句中指定表名:ON tblAgendaPunten.eventLocatieId = tblAgendaLocaties.lokId' –

+0

此外,我不认为Access支持在包含子查询的表达式中拥有多个记录。你可能需要类似'(SELECT First(pltsNaam)FROM tblAgendaPlaatsen WHERE pltsId = tblAgendaPunten.eventPlaatsId)AS eventPlaatsNaam' –

回答

0

你或许应该更换你的子查询与联接:

SELECT eventID, 
    eventRedacteur, 
    eventEvenement, 
    eventGenreId, 
    eventDatum, 
    eventLocatieId, 
    eventLocatieNaam, 
    eventPlaatsId, 
    eventBijzonderheden, 
    eventBezoekers, 
    lokId, 
    lokNaam, 
    lokUrl, 
    pltsId, 

    pltsNaam, 

    genreNaam, 

    lokadres, 
    lokhuisnr 
FROM ((tblAgendaPunten 
LEFT JOIN tblAgendaLocaties 
    ON tblAgendaPunten.eventLocatieId = tblAgendaLocaties.lokId) 
LEFT JOIN tblAgendaPlaatsen 
    ON tblAgendaPunten.eventPlaatsId = tblAgendaPlaatsen.pltsId) 
LEFT JOIN tblAgendaGenre 
    ON tblAgendaPunten.eventGenreId = tblAgendaGenre.genreId 

注意周围的每个嵌套加入括号。

+0

这可能应该是对原始问题的评论,但我把它作为显示格式化SQL的答案。 –