Sql server 在内部联接中选择主键
我在SQLServer中为Select做了一个声明Sql server 在内部联接中选择主键,sql-server,select,inner-join,Sql Server,Select,Inner Join,我在SQLServer中为Select做了一个声明 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
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'”
Oid
在两个表中都不明确。与自然联接(未在SQL Server中实现)不同,您需要指定要从中选择值的表
这似乎是多余的,因为您的查询已经指定了OrderDetails.Oid=Orders.Oid
,但这两个值实际上可能不同(例如,如果OrderDetails.Oid
was'abc'
和Orders.Oid
was'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