Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Inner join 为什么在加号处出现内部联接错误?_Inner Join_Where Clause_Create View - Fatal编程技术网

Inner join 为什么在加号处出现内部联接错误?

Inner join 为什么在加号处出现内部联接错误?,inner-join,where-clause,create-view,Inner Join,Where Clause,Create View,这与我在主题“MySQL内部连接”的回答中看到的错误非常相似,但并不完全相同。问题是WHERE语句出错,如下所示:“错误2.5不能准备语句(1没有这样的列:Orders.OrdersID)”。我的内部连接语句是否错误/太俗气了?。我检查了每个表,以确保字段名正确无误。名为ORDERS的表具有以下字段:OrderID CustomerID EmployeeID OrderDate ShipperID--名为OrderDetails的表具有以下字段:OrderDetailID OrderID Pro

这与我在主题“MySQL内部连接”的回答中看到的错误非常相似,但并不完全相同。问题是WHERE语句出错,如下所示:“错误2.5不能准备语句(1没有这样的列:Orders.OrdersID)”。我的内部连接语句是否错误/太俗气了?。我检查了每个表,以确保字段名正确无误。名为ORDERS的表具有以下字段:OrderID CustomerID EmployeeID OrderDate ShipperID--名为OrderDetails的表具有以下字段:OrderDetailID OrderID ProductID Quantity | | | | |是否有人对此错误有想法或解决方案?。(它快把我逼疯了!!!)。代码如下:

CREATE VIEW OrderView AS 
SELECT Employees.EmployeeID AS 'Employee_EMPLOYEE_ID', 
       Orders.OrderID AS 'Orders_ORDER_ID',
       Orders.EmployeeID AS 'Orders_EMPLOYEE_ID', 
       OrderDetails.OrderID AS 'OrderDetails_ORDER_ID',
       OrderDetails.Quantity AS 'OrderDetails_QTY'
FROM 
       Employees
INNER JOIN Orders ON OrderDetails.OrderID = Orders.OrderID
INNER JOIN OrderDetails On OrderDetails.OrderID = Orders.OrderID
WHERE OrderDetails.OrderID = Orders.OrdersID
AND   OrderDetails.Quatity > 30
ORDER BY Employees.EmployeeID;

我通过使用不同的表纠正了失败的语句集,将所有语句以缩进的方式放置,在w3schools下运行,它运行良好,如下所示:

CREATE VIEW OrderView AS
SELECT Orders.OrderID,
       Orders.CustomerID, 
       Customers.CustomerID AS C_CUSTOMERID, 
       Orders.CustomerID AS  O_CUSTOMERID, 
       Orders.ShipperID as O_SHIPPERID, 
       Shippers.ShipperID as S_SHIPPERID, 
       Customers.Country,
       Customers.CustomerName, 
       Shippers.ShipperName
FROM ((Orders
       INNER JOIN Customers ON Orders.CustomerID = Customers.CustomerID)
       INNER JOIN Shippers ON Orders.ShipperID = Shippers.ShipperID)
WHERE Customers.Country='Mexico' or Customers.Country='Germany' or 
      Customers.Country='Spain'
GROUP BY Customers.CustomerID
HAVING Customers.CustomerID > 39
ORDER BY Customers.Country ASC;

我通过更改要使用的表、要使用的字段对该语句进行了更正,并在w3schools下运行了该语句,该语句运行良好,如下所示: