为什么我无法在以下数据库中进行此查询:W3学校数据库(表格列在右侧)?
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”中存在语法错误(缺少运算符)。
提前致谢。
这是 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
在 Chrome 中工作正常,但在 Firefox 中失败。
原因是 w3c 页面在浏览器的 WebSQL 引擎中运行 SQL 查询,以免服务器过载。对于不支持 WebSQL 的浏览器,它求助于 ASP WS,它在远程访问数据库上运行查询。
这就是为什么在 Firefox 中每个连接都需要括号 a là Access,但在 Chrome 或任何其他支持 websql 的浏览器中则不需要它们。
尝试使用如下括号...假设如果您想再添加一个表,语法将如下所示
SELECT Customers.CustomerId, Orders.OrderId
FROM (((Customers
Inner JOIN Orders ON Customers.CustomerId = Orders.CustomerId)
Inner JOIN OrderDetails ON Orders.OrderId = OrderDetails.OrderId)
Inner Join Products ON Products.ProductId = OrderDetails.productId);