2015-10-28 95 views
1

好吧,這與數據庫有關http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_allSQL:如何從三個表中選擇兩個輸入參數?

我需要找到來自西班牙訂單的Customers,OrderID,ProductID列表。 表'訂單'具有訂單ID和表'產品'包含產品ID,而表'訂單詳細信息'包含訂單ID和產品ID。我用下面的代碼,但我得到一個錯誤信息「錯誤:1不明確的列:訂單」

這裏是我的代碼

SELECT CustomerName, Country, OrderID, ProductID 
FROM Customers, Orders, Products, OrderDetails 
WHERE Customers.CustomerID = Orders.CustomerID 
AND Orders.OrderID = OrderDetails.OrderID 
AND Products.ProductID = OrderDetails.ProductID AND Country = 'Spain' 

有人能糾正任何錯誤?

+2

學習使用正確的'join'語法。不要在'from'子句中使用逗號。 –

+1

SELECT子句中的'OrderID'可以引用Orders或OrderDetails表。添加一個前綴來指定您想要的。 –

+0

爲OrderID和productID添加前綴完美無缺!謝謝... – user5498276

回答

0

您需要使用的別名是這樣的:

SELECT Customers.CustomerName, 
     Customers.Country, --Specify the correct table in which you have Country column 
     Orders.OrderID, 
     Products.ProductID 
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 
where Customers.Country = 'Spain' 

也儘量不要將逗號分隔的連接。好讀:Bad habits to kick : using old-style JOINs