-1

私は基本的な SQL クエリ以外は何も書いたことがありません。2 つのテーブルを結合しようとしていますが、次のエラーが発生します。

メッセージ 209、レベル 16、状態 1、行 2
あいまいな列名 'UserId'。

これは私のSQLクエリです:

SELECT UserName, UserId
FROM aspnet_Users 
JOIN aspnet_UsersInRoles ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId

そして、これは私のデータベース図です:

ここに画像の説明を入力

クエリの何が問題になっていますか?

UserNameまた、 andを取得するためにこのクエリをどのように構成すればよいか、誰にもわかりますRoleNameか?

4

3 に答える 3

2

UserIdは両方のテーブルに表示されるため、複数のテーブルを使用する場合はテーブル名を指定する必要があります。

あなたが望むUserNameと仮定するUserIdaspnet_users

SELECT aspnet_Users.UserName, aspnet_Users.UserId
FROM aspnet_Users JOIN aspnet_UsersInRoles 
ON aspnet_Users.UserId = aspnet_UsersInRoles.UserId
于 2012-11-28T18:40:24.453 に答える
1

UserIDパーサーは、使用したいテーブルと混同しています。UserIDは 2 つのテーブルから来ており、どちらを表示するかを選択する必要があります

SELECT 
    au.UserName , 
    au.UserId
FROM aspnet_Users au 
     JOIN aspnet_UsersInRoles ur
     ON au.UserId = ur.UserId

これで、から 1 つを選択するように指定しましたaspnet_Users。私が使用したエイリアス (例: au、ur) の代わりにテーブル名を引き続き使用できます。彼らは短いので、私はそれらを好む

于 2012-11-28T18:45:31.527 に答える