2013-10-23 2 views
-3

asp.net을 사용하여 WebSite를 구현 중입니다.SQL 구문을 구성하는 방법

aspnet_regsql.exe로 회원 데이터베이스를 구성했습니다.

다음은 aspnet_regsql에서 만든 데이터베이스 다이어그램입니다.

enter image description here

는 제가 잘 모릅니다

**[U.UserName, M.Email, M.LastLoginDate, R.RoleName ]** 

aspnet_Users AS U 

aspnet_UsersInRols AS UR 

aspnet_Roles AS R 

aspnet_Membership As M 

은 내가 어떻게이 테이블을 조인 할 수 있습니다 아래의 열이 데이터를 구축하고자합니다.

SQL 구문을 어떻게 구성 할 수 있습니까?

이 쿼리를 시도했지만 올바른 결과가 없습니다.

SELECT U.UserName, M.Email, M.LastLoginDate, R.RoleName 
FROM  aspnet_Users AS U, 
      aspnet_UsersInRoles AS UR, 
      aspnet_Roles AS R, 
      aspnet_Membership AS M 
WHERE U.UserId = UR.UserId AND UR.RoleId = R.RoleId AND U.UserId = M.UserId 

감사합니다.

+0

외래 키와 그 키에 익숙합니까? ** 힌트 : **'aspnet_Users','aspnet_Membership','aspnet_UsersInRoles'에서'UserId'를보고'aspnet_UsersInRoles'와'aspnet_Roles'에서'RoleId'를보십시오. – Tim

+1

사용하는 구문이 오래되었습니다. 적절한 JOIN 문을 사용해보십시오. 나는. 'FROM table 1, Table 2 WHERE Table1.column = table2.coulmn'보다는 'table1 JOIN Table2 SELECT table1.column = Table2.column'에서 선택하십시오. – SchmitzIT

답변

1
SELECT 
    u.UserName, 
    m.Email, 
    m.LastLoginDate, 
    r.RoleName 
FROM 
    aspnet_Users u 
LEFT JOIN 
    aspnet_Membership m 
ON u.UserId = m.UserId 
LEFT JOIN 
    aspnet_UsersInRoles ur 
ON u.UserId = ur.UserId 
INNER JOIN 
    aspnet_Roles r 
ON ur.RoleId = r.RoleId 

aspnet_Membershipaspnet_UsersInRoles 조인 남아 있습니다.

+0

정말 감사드립니다. – user2423434

1

이렇게하면 시작해야합니다. 당신은 기본적으로이 컬럼의 값이 일치하는 데이터를 연결하는 키 열을 사용

SELECT 
    U.Username 
    , M.Email 
    , M.LastLoginDate 
    , R.RoleName 
FROM 
    aspnet_Users AS U 
    JOIN aspnet_UserInRoles AS UR ON U.UserId = UR.UserId 
    JOIN aspnet_Roles AS R ON R.RoleId = UR.RoleId 
    JOIN aspnet_Membership AS M ON U.UserId = M.UserID 

당신은 지정을하는 일치가없는 경우 수행 할 작업을 결정합니다 JOIN (기본값 = INNER JOIN)의 유형, 이 열은 두 테이블의 데이터를 서로 연결합니다.

사용자 및 UserInRoles의 경우 UserID 필드입니다.

데이터베이스 조인에 대해 읽어 보시기 바랍니다. 다음은 시작이다 : 그들은 모든 사용자의 세부 사항을해야합니다 경우 나도 몰라으로

SQL Server Introduction to JOINs - SQLAuthority.com

+0

도움 주셔서 감사합니다. SQL 구문에 대해 더 공부해야합니다. – user2423434

관련 문제