2012-11-28 2 views
-1

기본 SQL 쿼리 외에는 아무 것도 쓰지 않았습니다. 나는 두 개의 테이블을 조인하려고 나는이 오류가 무엇입니까 :SQL SELECT 쿼리 : "모호한 열 이름"

메시지 209, 수준 16, 상태 1, 줄 2
모호한 열 이름 '사용자 아이디'.

이 내 SQL 쿼리입니다 :

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

그리고 이것은 내 데이터베이스도 :

enter image description here

내 쿼리에 문제가 있나요?

또한 누구나 내가 UserNameRoleName을 얻으려면이 쿼리를 어떻게 구성해야합니까?

+0

SQL로 점프하기 전에 몇 가지 튜토리얼을 실행 해 보자 : http://www.w3schools.com/sql/default.asp –

답변

2

두 테이블 모두에 UserId이 표시되므로 여러 테이블을 사용할 때 테이블 이름을 지정해야합니다.

당신이 aspnet_users에서 UserNameUserId을 원하는 가정 :

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

파서는 사용하고자하는 테이블의 UserID과 혼동된다. UserID 두 테이블에서 오는 당신은 당신이

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

이제 우리는 aspnet_Users의 하나가 포착해야한다고 지정한 표시 할 하나를 선택해야합니다. 내가 사용한 별칭 (예 : au, ur) 대신에 테이블 이름을 사용할 수 있습니다. 나는 그것들이 더 짧기 때문에 선호한다.