2016-10-25 5 views
0

CustomerIDを取得しようとしていますが、エラーが発生し続けます。ここに私のコードです:2つのテーブルでloctedされた列を呼び出します。

SELECT CustomerID, FirstName, LastName,Line1,Line2, City, State, ZipCode 
FROM Customers INNER JOIN Addresses 
    ON Customers.CustomerID = Addresses.CustomerID; 

私のエラーは:曖昧な列名 'CustomerID'です。 JOINステートメントをどのように使用したのでしょうか。何かご意見は?

+1

あなたがテーブルの値が引かれるべき、そこからコンパイラに必要なので、 'SELECT Customers.CustomerID..'は' CustomerID'列は、テーブルの両方に存在しています。 –

+0

'SELECT Customers.CustomerID'または' SELECT Addresses.CustomerID'からどれかのテーブルを指定するだけです –

+1

はい、プレフィックスとしてテーブル(またはテーブルエイリアス)を追加してください。偶然にも、参加条件で行ったこととまったく同じです。 – Lamak

答えて

1

使用エイリアス:

SELECT C.CustomerID, C.FirstName, C.LastName, A.Line1, A.Line2, A.City, A.State, A.ZipCode 
FROM Customers C 
INNER JOIN Addresses A 
     ON C.CustomerID = A.CustomerID; 
+0

このクエリは私のものよりもきれいです。 –

0

SQL Serverは意味どちらかを知らないので、「得意先」という名前の結果2つの列があります。彼らがあなたのJOINで等しいと指定しても問題ありません。 SQLでは依然として必要なものを指定する必要があります。

あなたは自分の列にテーブル名を追加することができますが、私の代わりに表の別名を好む:

SELECT 
    C.CustomerID, 
    C.FirstName, 
    C.LastName, 
    A.Line1, 
    A.Line2, 
    A.City, 
    A.State, 
    A.ZipCode 
FROM 
    Customers C 
INNER JOIN Addresses A ON A.CustomerID = C.CustomerID; 
0

あなたが参加から表示するcostumerIDデータベースエンジンを指示する必要があります。

SELECT **Addresses.CustomerID**, FirstName, LastName,Line1,Line2, City, State, ZipCode 
FROM Customers 
INNER JOIN Addresses ON Customers.CustomerID = Addresses.CustomerID 

または

SELECT **Customers.CustomerID**, FirstName, LastName,Line1,Line2, City, State, ZipCode 
FROM Customers 
INNER JOIN Addresses ON Customers.CustomerID = Addresses.CustomerID 
関連する問題