MySQL用FK表中的数据替换结果表中的外键

Rog*_*vis 11 mysql sql database

我有这样一张桌子:

id (PK)   name    teacher (FK)    student (FK)
   1      Ron         3               6
Run Code Online (Sandbox Code Playgroud)

老师和学生都在另一张叫做的桌子里people.

 people
 id (PK)   name   age
    3      Ali    42
    6      Jon    12
Run Code Online (Sandbox Code Playgroud)

我想执行查询以获取以下内容

name    teacher's name   student's name
 Ron         Ali              Jon
Run Code Online (Sandbox Code Playgroud)

这可能吗?我知道我可以执行两个单独的连接,但后来我留下了两行,没有迹象表明哪个名字是老师,哪个是学生

val*_*lex 13

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)
Run Code Online (Sandbox Code Playgroud)


Sah*_*hah 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;
Run Code Online (Sandbox Code Playgroud)