2012-04-10 14 views
0

이것은 약간의 멍청한 질문이 될 것이지만 다른 테이블의 외래 키에 따라 데이터를 가져오고 싶을 때 문제는 SQL을 알아낼 수 없다는 것입니다. 그것을하기 위해. 데이터베이스에서 정보 가져 오기

I가 다음과 같은 테이블 :

  • USERS : login, password, role_id, userDetail_id

  • 역할 제 : role_id, role_name

  • USER_DETAILS : userDetail_id, name surname

이제 role_id가 4 인 모든 사용자의 이름과 성을 가져와 ASP 드롭 다운 컨트롤에 표시하려고합니다.

정말로 도움이 되었기 때문에 도움을 주셔서 감사합니다.

답변

2

당신의 SQL이 될 것입니다 :

DataTable dt = @"Select name, surname from USER_DETAILS as ud 
    Inner Join USERS as u on ud.userDetail_id = u.userDetail_id 
    Inner join ROLES as r on u.role_id = r.role_id 
    where u.role_id = 4"; 

는 그런 다음 드롭 다운 당신의 데이터 테이블을 결합 할 수 있습니다

dropdown.DataSource = dt; 
    dropdown.DataTextField = "name"; 
    dropdown.DataBind(); 
0
SELECT name, surname 
FROM USER_DETAILS ud, USERS u 
WHERE ud.userDetail_id = u.userDetail_id 
AND u.role_id = 4; 
+0

또한'LEFT JOIN' 와 함께 할 수있는 'SELECT 이름, 성으로부터 USER_DETAILS ud LEFT JOIN USERS u ON (ud.userDetail_id = u.userDetail_id) WHERE u.role_id = 4;' – psalvaggio

0
SELECT ud.name, ud.surname 
FROM user_details ud, roles uroles, users u 
WHERE ud.userDetail_id = u.userDetail_id 
AND u.role_id = uroles.role_id 
AND uroles.role_id = 4 
관련 문제