2016-10-26 6 views
0

私はジョインステートメントを実行すると「ユニークなテーブル/エイリアスではありません」というエラーが表示されます。私は持っているすべての情報を表示したい。私はJOINのステートメントを調べて、何が間違っているのか分かりません。ユニークなテーブル/エイリアスではありません - SQL

SELECT Customer.CustomerID, Customer.FirstName, Customer.LastName,  Customer.StreetAddress,Customer.City,Customer.State,Customer.Zipcode, Customer.HomePhone,Customer.MobilePhone,Customer.OtherPhone, Pizza.PizzaID, 
Pizza.PizzaName, Pizza.Description, Pizza.UnitPrice, OrderInformation.OrderID, OrderInformation.OrderDate, OrderItem.Quantity 


FROM Customer 

JOIN OrderInformation ON OrderInformation.OrderID = OrderItem.OrderID 
JOIN Pizza ON Pizza.PizzaID = OrderItem.PizzaID 
JOIN Customer ON Customer.CustomerID = OrderInformation.CustomerID; 

答えて

0
SELECT 
... 
FROM Customer 
... 
JOIN Customer 

あなたはFROM Customerを選択し、JOIN Customerをやって、あなたが今Customerの2つのインスタンスを持っているという意味です。 Customer.CustomerIDのようなものを参照すると、あなたが参照しているCustomerテーブルの反復がクエリで分かりません。

実際に同じテーブルへの参照が2つ必要な場合は、1つには別名を付けることができます。しかし、OrderItemテーブルを参照していて、決してJOINを選択しているか、FROMを選択していないと、私はそれらのテーブルのうちの1つがOrderItemであるはずです。このようにおそらく...

SELECT ... 

FROM OrderItem 

JOIN OrderInformation ON OrderInformation.OrderID = OrderItem.OrderID 
JOIN Pizza ON Pizza.PizzaID = OrderItem.PizzaID 
JOIN Customer ON Customer.CustomerID = OrderInformation.CustomerID; 
+0

おかげで、それは働きます! – Nippon87

0

テーブルエイリアスを使用することを強くお勧めします。 Customerへの最初の参照が本当にOrderItemでなければならないこと、それが表示されます。詳細について

SELECT c.CustomerID, c.FirstName, c.LastName,  
     c.StreetAddress, c.City, c.State, c.Zipcode, 
     c.HomePhone, c.MobilePhone, c.OtherPhone, 
     p.PizzaID, p.PizzaName, p.Description, p.UnitPrice, 
     oinf.OrderID, oinf.OrderDate, oi.Quantity 
FROM OrderItem oi JOIN 
    OrderInformation oinf 
    ON oinf.OrderID = oi.OrderID JOIN 
    Pizza p 
    ON p.PizzaID = oi.PizzaID JOIN 
    Customer c 
    ON c.CustomerID = oi.CustomerID; 
関連する問題