2013-03-18 483 views
1

两个表:SQL:使用多重SELECT语句/检索相同的字段两次?

person(name,person_id) 
lesson(teacher_id, student_id, time, place) 

我要检索的老师的名字,学生姓名,时间和地点

所以像这样:

Teacher|Student|Time|Place 
ms bla | fred | 12 | UK 
ms bla | Jim | 12 | UK 
mr ttt | john | 10 | UNI 

等。

所以我如何选择person_id两次使用WHERE来匹配​​& student_id

回答

5

可以通过使用一个alias重命名表(DEMO)多次加入到同一个表:

select 
    teacher.name as Teacher, 
    student.name as Student, 
    lesson.time, 
    lesson.place 
from 
    lesson 
join 
    person teacher on teacher.person_id = lesson.teacher_id 
join 
    person student on student.person_id = lesson.student_id 

lesson表由teacher_id = person_id链接到person表(别名为teacher)。然后,课程表再次链接到person表格(此时别名为studentstudent_id = person_id。通过使用别名,我们可以引用每个别名的列name以获取相应的教师和学生姓名。

+0

谢谢,花了我一秒,但我现在明白了。 – georgewhg 2013-03-18 23:56:20