2013-07-03 105 views
1

我做了聲明對於選擇在SQL Server選擇主鍵內加入

SELECT Oid  AS 'Order ID', 
     Eid  AS 'Employee ID', 
     Barcode, 
     PacksQty AS 'Pack Quantity', 
     UnitQty AS 'Units Quantity', 
     Date  AS 'Order Date', 
     Price AS 'Total Price' 
FROM OrderDetails 
     INNER JOIN Orders 
     ON OrderDetails.Oid = Orders.Oid 

和錯誤在選擇OID和錯誤是「不明確的列名稱的Oid'」

回答

0

Oid是它們在兩個表中都不明確。與自然連接不同(未在SQL Server中實現),您需要指定要從中獲取值的表。

這可能似乎是多餘的作爲查詢已經指定OrderDetails.Oid = Orders.Oid但是兩個值實際上可以是不同的(例如,如果是OrderDetails.Oid'abc'Orders.Oid'ABC'上不區分大小寫的核對)。

您可以定義表別名以避免輸入整個表名。下面的示例語法(對您的模式做出一些假設)

SELECT O.Oid  AS 'Order ID', 
     O.Eid  AS 'Employee ID', 
     OD.Barcode, 
     OD.PacksQty AS 'Pack Quantity', 
     OD.UnitQty AS 'Units Quantity', 
     OD.Date  AS 'Order Date', 
     OD.Price AS 'Total Price' 
FROM OrderDetails OD 
     INNER JOIN Orders O 
     ON OD.Oid = O.Oid 
+0

感謝它很多它現在工作:) –