2013-03-18 64 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