12

次のようなテーブルがあります。

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

これは可能ですか?2 つの個別の結合を実行できることはわかっていますが、2 つの行が残っており、どちらが教師でどちらが生徒であるかを示すものはありません。

4

2 に答える 2

18
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)
于 2012-12-19T08:43:34.380 に答える
8

これを試して:

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;
于 2012-12-19T08:44:45.213 に答える