2012-12-19 3 views
11

의 데이터로 결과 테이블의 외래 키를 교체 :MySQL은이 같은 테이블이 FK 테이블

id (PK) name teacher (FK) student (FK) 
    1  Ron   3    6 

모두 교사와 학생이 people라는 다른 테이블에 있습니다.

people 
id (PK) name age 
    3  Ali 42 
    6  Jon 12 

나는 다음과 같은

name teacher's name student's name 
Ron   Ali    Jon 

을 얻을 수있는 쿼리를 수행하고자이 가능합니까? 나는 별도의 조인이 수행 할 수 있습니다 알고 있지만, 나는이 두 행 왼쪽하고 거기에 이름이 선생님으로있는 아무 표시가없는 학생에게 어떤

답변

12
select t.name, p1.name teacher_name, p2.name student_name 
     from t 
left join people p1 on (t.teacher=p1.id) 
left join people p2 on (t.student=p2.id) 
7

이 시도 :

SELECT a.name, b.name 'teacher name', c.name 'student name' 
FROM mainTablle a 
LEFT JOIN people b ON a.teacher = b.id 
LEFT JOIN people c ON a.student = c.id 
WHERE a.id = 1;