1

ここに画像の説明を入力

以下のクエリを試しました

SELECT Customer.*,
       ElectrnicItem.Product1 AS ElectronicItem1,
       ElectrnicItem.Product2 AS ElectronicItem2,
       ElectrnicItem.Product3 AS ElectronicItem3,
       ApparelItem.Product1 AS ApparelItem1,
       ApparelItem.Product2 AS ApparelItem2,
       ApparelItem.Product3 AS ApparelItem3
FROM Customer
LEFT JOIN Inventory AS ElectrnicItem 
ON (Customer.CustomerID = ElectrnicItem.CustomerID)
LEFT JOIN Inventory AS ApparelItem 
ON (Customer.CustomerID = ApparelItem.CustomerID)

しかし、常に返されます:

ORA-00918 列があいまいに定義されています

4

4 に答える 4

0

テーブル Customer と Inventory を作成し、提供された値も挿入しました。クエリは次のとおりです。

select customer.*,ElectrnicItem.Product1 as ElectronicItem1,
ElectrnicItem.Product2  as ElectronicItem2,
ElectrnicItem.Product3 as ElectronicItem3,
ApparelItem.Product1 as ApparelItem1,
ApparelItem.Product2 as ApparelItem2,
ApparelItem.Product3 as ApparelItem3 
from customer 
left join inventory as ElectrnicItem on 
(customer.CustomerID = ElectrnicItem.CustomerID ) 
left join inventory as ApparelItem 
on (customer.CustomerID = ApparelItem.CustomerID )

正常に動作し、次の結果が得られます。

    1   David Miller    mobile  headphone   trimmer mobile  headphone   trimmer
    2   Johnson         jeans   tshirt      NULL   jeans    tshirt      NULL               
    3   Diggs           NULL    NULL        NULL    NULL    NULL        NULL            

あなたが言及した期待される成果は決して達成されません。Customerテーブルには と が含まれCustomerIdているためCustomerName、 は と の両方をCustomer.*取得します。したがって、列に値を含めることはできません 。 CustomerIdCustomerNameCustomerNameNULL

于 2013-05-03T09:57:27.763 に答える