INNER JOIN嵌套SQL

时间:2013-09-10 14:03:11

标签: sql join inner-join

为什么我无法在以下数据库中执行此查询:W3 School Database (表格列在右侧)

SELECT Customers.CustomerName,
       OrderDetails.ProductID
FROM   Customers
       INNER JOIN Orders
         ON Customers.CustomerID = Orders.CustomerID
       INNER JOIN OrderDetails
         ON Orders.OrderID = OrderDetails.OrderID 

我正在尝试查看客户订购的产品ID。上面的查询应该使客户与订单匹配,然后获取这些订单ID并找到正确的OrderDetails以输出具有CustomerName和ProductID的表。

我收到以下错误:

  

查询表达式中的语法错误(缺少运算符)'Customers.CustomerID = Orders.CustomerID INNER JOIN OrderDetails ON Orders.OrderID = OrderDetails.OrderID。

提前致谢。

2 个答案:

答案 0 :(得分:1)

这是Access数据库吗?如果是这样,当有多个JOIN时需要括号:

SELECT Customers.CustomerName,
   OrderDetails.ProductID
FROM   (Customers
   INNER JOIN Orders
     ON Customers.CustomerID = Orders.CustomerID)
   INNER JOIN OrderDetails
     ON Orders.OrderID = OrderDetails.OrderID

答案 1 :(得分:0)

它适用于Chrome,但在Firefox中失败。

原因是w3c页面在浏览器的WebSQL引擎中运行SQL查询,以免过载服务器。对于不支持WebSQL的浏览器,它会转向使用远程访问数据库上运行查询的ASP WS。

这就是为什么在Firefox中每个加入需要括号的làAccess,但是在Chrome或任何其他支持webql的浏览器中你不需要它们。