【问题标题】:Joining 3 tables into 1 - SQL将 3 个表加入 1 个表 - SQL
【发布时间】:2010-08-14 02:57:47
【问题描述】:

我正在尝试在 Access 2007 中将两个表 LEFT OUTER JOIN 然后 INNER JOIN 另一个表一起。

    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。我似乎无法弄清楚为什么会出现此错误。我可以成功加入前两个表,但第三个表是给我带来麻烦的表。任何建议将不胜感激!

【问题讨论】:

    标签: sql sql-server ms-access ms-access-2007


    【解决方案1】:

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

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

    【讨论】:

    • 好眼光。我更正了这一点,并在第一条语句中添加了 () 并且它起作用了。感谢您的帮助。
    • @OMG Ponies:只是因为答案框在 IE8 中出现了问题! ;)
    • @Mitch Wheat:这就是他们称之为“互联网爆炸者”的原因 =)
    • @Mitch Wheat - Firefox 应该是你的朋友。 :)
    【解决方案2】:

    尝试将连接表达式放在()中

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

    【讨论】:

    • 这是赢家。感谢您的帮助!
    【解决方案3】:
    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 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-05
      • 2016-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      相关资源
      最近更新 更多