2013-01-07 41 views
1

以下錯誤:SQL錯誤,列不存在

Unknown column 'Customers.Customer_ID' in 'on clause' 

這段代碼的結果:

SELECT First_Name, Last_Name, Orders.Order_ID, Orders.Order_Date, Orders.Plant_ID, Orders.Plant_Qty, Orders.Price, Orders.Employee_ID 
FROM Customers, Orders 
INNER JOIN Orders as t2 
ON Customers.Customer_ID = t2.Order_ID; 

我不明白爲什麼; Customers.Customer_ID是Customers表中的一個字段?

+0

看看這個。 'FROM Customers,Orders INNER JOIN Orders as t2'這是什麼? –

回答

2

可能是因爲它含糊不清。您需要刪除FROM .. Orders,因爲它看起來像是在嘗試進行顯式連接。我還建議在列列表中爲所有列名添加前綴。您還應該堅持在連接上使用別名或表名。

SELECT customers.first_name, 
     customers.last_name, 
     orders.order_id, 
     orders.order_date, 
     orders.plant_id, 
     orders.plant_qty, 
     orders.price, 
     orders.employee_id 
FROM customers 
     INNER JOIN orders 
       ON customers.customer_id = orders.order_id; 
+1

這是超出範圍,而不是模糊的,如果ansi 89和92聯合混合89個被視爲最後加入,所以客戶不在on子句中可用。 –

+0

@馬丁史密斯說得好。 – Kermit

+0

這也告訴我Orders.Order_ID是一個未知的列表 –

0

我相信Customers -> Orders(一對多關係)和你想加入的表一對一的關係,糾正我,如果我錯了。所以查詢應該這樣。

SELECT First_Name, Last_Name, Orders.Order_ID, Orders.Order_Date, Orders.Plant_ID, Orders.Plant_Qty, Orders.Price, Orders.Employee_ID 
FROM Customers 
INNER JOIN Orders as t2 
ON Customers.Customer_ID = t2.Customer_ID; 
+0

是的,你說的是一對多的關係。我試圖顯示訂單表中的每個字段,並使用查詢列出客戶的名字和姓氏。 –

+0

好吧,查詢應該像'Customers.Customer_ID = Orders.Customer_ID;'Customer_ID' - > Customer表的外鍵到'Orders表' – spajce