0

フィールドと関係のあるテーブルが2つありUserNameます。列に基づいて、テーブルから取得しUserNameたいと思います。これが私のSQLステートメントです:IDCarReserve

SELECT CarReserve.ID 
FROM CarReserve 
 INNER JOIN aspnet_Users ON CarReserve.UserName = aspnet_Users.UserName 
WHERE UserName = @UserName

残念ながら、次の警告が表示されます。

あいまいな列名「UserName」

ここの誰かが私の声明の何が悪いのか教えてもらえますか?

4

3 に答える 3

1

aspnet_usersを追加するのを忘れました。where句のユーザー名の前。

テーブルにもエイリアスを使用することをお勧めします。

于 2012-09-15T15:27:22.933 に答える
1

UserName前にテーブル名を追加しますWHERE UserName = @UserName

クエリは次のようになります。

SELECT CarReserve.ID 
    FROM CarReserve 
    INNER JOIN aspnet_Users ON CarReserve.UserName = aspnet_Users.UserName 
    WHERE aspnet_Users.UserName = @UserName
    ------^-----------^----------------

または

SELECT CarReserve.ID 
    FROM CarReserve 
    INNER JOIN aspnet_Users ON CarReserve.UserName = aspnet_Users.UserName 
    WHERE CarReserve.UserName = @UserName
    ------^---------^----------------
于 2012-09-15T15:27:43.803 に答える
1

明確に修飾するには、句のusernameフィールドにエイリアスを付ける必要があります。WHERE

SELECT CarReserve.ID 
FROM CarReserve 
INNER JOIN aspnet_Users ON CarReserve.UserName = aspnet_Users.UserName 
WHERE aspnet_Users.UserName = @UserName
于 2012-09-15T15:28:21.763 に答える