1

SQL Server の 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'」です

4

1 に答える 1

0

Oid両方の表にあるため、あいまいです。自然結合 (SQL Server には実装されていません) とは異なり、値を取得するテーブルを指定する必要がありますSELECT

クエリが既に指定しているため、これは冗長に見えるかもしれませんOrderDetails.Oid = Orders.Oidが、実際には 2 つの値が異なる場合があります (例: OrderDetails.Oidwas'abc'Orders.Oidwas'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 
于 2013-07-03T23:15:55.280 に答える