2010-08-14 147 views
1

我想LEFT OUTER JOIN两个表,然后一起INNER JOIN另一个表在Access 2007加入3个表到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 

我不断收到一个语法错误在我的查询表达式。 “INNER JOIN RestaurantTag rt ON rt.TagID = r.TagID”

我在Restaurant和RestaurantTag表中都有一个对应的TagID。我似乎无法弄清楚为什么我得到这个错误。我可以成功地加入前两个表,但第三个表是给我的麻烦。任何建议将不胜感激!

回答

2

没有看到表的定义,这是一个猜测,但你有一个错误:

INNER JOIN RestaurantTag rt ON r.TagID = t.TagID应该INNER JOIN RestaurantTag rt ON r.TagID = rt.TagID

+0

+1:你是第一个 – 2010-08-14 03:05:10

+0

好眼睛。我纠正了这一点,并且还添加了()第一条语句,并且它工作正常。感谢您的帮助。 – nikl91 2010-08-14 03:16:06

+0

@OMG小马:仅仅是因为答案框在IE8中废话! ;) – 2010-08-14 03:18:26

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

尝试把在联接表达式()

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

这是赢家。谢谢您的帮助! – nikl91 2010-08-14 03:15:33