选择内部联接中的主键

时间:2013-07-03 23:14:05

标签: sql-server select inner-join

我在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'”

1 个答案:

答案 0 :(得分:0)

Oid不明确,因为它在两个表格中都是如此。与自然连接(未在SQL Server中实现)不同,您需要指定要SELECT值的表。

这可能看似多余,因为您的查询已指定OrderDetails.Oid = Orders.Oid,但这两个值实际上可能不同(例如OrderDetails.Oid'abc'Orders.Oid为{{1}和不区分大小写的排序规则)。

您可以定义表别名以避免输入整个表名。下面的示例语法(对您的架构做出一些假设)

'ABC'