Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 在内部联接中选择主键_Sql Server_Select_Inner Join - Fatal编程技术网

Sql server 在内部联接中选择主键

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

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