2010-08-14 8 views
1

Je suis en train de LEFT OUTER JOIN deux tables, puis INNER JOIN une autre table ensemble dans Access 2007.Joining 3 tables en 1 - SQL

SELECT RestaurantName, 
      StreetAddress, 
      City, 
      State, 
      Zip, 
      RestaurantWebsite, 
      MenuLink, 
      RestaurantTimes, 
      PhoneNumber, 
      PictureTitle, 
      PictureTitle3, 
      PictureTitle3, 
      PictureTitle4, 
      PictureTitle, 
      TagType 
     FROM Restaurants r 
LEFT OUTER JOIN RestaurantPictures rp ON r.ID = rp.ID 
INNER JOIN RestaurantTag rt ON r.TagID = t.TagID 

Je continue à obtenir une erreur de syntaxe dans mon expression de requête. "INNER JOIN RestaurantTag rt ON rt.TagID = r.TagID"

J'ai un TagID correspondant dans les tables Restaurant et RestaurantTag. Je n'arrive pas à comprendre pourquoi je reçois cette erreur. Je peux joindre les deux premières tables avec succès, mais la troisième table est celle qui me pose problème. Toutes les suggestions seraient grandement appréciées!

Répondre

2

Sans voir une définition de la table c'est une supposition, mais vous avez une erreur:

INNER JOIN RestaurantTag rt ON r.TagID = t.TagID devrait être INNER JOIN RestaurantTag rt ON r.TagID = rt.TagID

+0

+1: Vous étiez le premier –

+0

Bon oeil. J'ai corrigé cela et ajouté() la première déclaration et cela a fonctionné. Merci pour l'aide. – nikl91

+0

@OMG Poneys: seulement parce que la case de réponse est vide dans IE8! ;) –

0
SELECT 
    RestaurantName, StreetAddress, City, State, Zip, RestaurantWebsite, 
    MenuLink, RestaurantTimes, PhoneNumber, PictureTitle, PictureTitle3, 
    PictureTitle3, PictureTitle4, PictureTitle, TagType 
FROM 
    Restaurants r LEFT OUTER JOIN RestaurantPictures rp ON r.ID = rp.ID 
    INNER JOIN RestaurantTag rt ON r.TagID = rt.TagID 
1

Essayez de mettre la jointure expression()

(Restaurants r LEFT OUTER JOIN RestaurantPictures rp ON r.ID = rp.ID) 
INNER JOIN RestaurantTag rt ON r.TagID = t.TagID 
+0

C'était le gagnant. Merci pour l'aide! – nikl91