2012-04-19 47 views
1

我正在使用mysql。MySQL返回加入同名同名表

我有兩個表

Students: 
stud_num 
prof1 
prof2 

Prof 
prof_id 
first_name 
last_name 

編號教授在學生表的外鍵。

我想要得到的stud_num和小弟弟震的名字和姓氏,並prof2的名字和姓氏

這裏是我的查詢不起作用:

select s.stud_num, CONCAT(p.first_name, " ", p.last_name) as PROF1, CONCAT(p.first_name, " ", p.last_name) as PROF2 
from students s 
inner join prof p 
on s.prof1 = p.prof 
and s.prof2 = p.prof 

這是行不通的。是否有捷徑可尋???

+0

感謝所有快速回復!!!! – segFault 2012-04-19 15:05:15

回答

3

加入兩次,教授表,但我會建議LEFT JOIN的情況下,教授的ID中的一個不提供

select 
     s.stud_num, 
     CONCAT(p1.first_name, " ", p1.last_name) as PROF1, 
     CONCAT(p2.first_name, " ", p2.last_name) as PROF2 
    from 
     students s 
     LEFT join prof p1 
      on s.prof1 = p1.prof 
     LEFT join prof p2 
      on s.prof2 = p2.prof 
1

請嘗試以下方法:

SELECT s.stud_num, 
     CONCAT(p1.first_name, " ", p1.last_name) as PROF1, 
     CONCAT(p2.first_name, " ", p2.last_name) as PROF2 
FROM students s, prof p1, prof p2 
WHERE s.prof1 = p1.prof 
     AND s.prof2 = p2.prof 
+0

+1左外連接更好,但確定:) – Andomar 2012-04-19 14:51:11

+0

謝謝,並完全同意。我只是想過發佈後看另一個答案。 – sarwar026 2012-04-19 14:52:40

3

的教授表的需求以兩個不同的名字加入兩次。 試試這個:

select s.stud_num, 
     CONCAT(p1.first_name, " ", p1.last_name) as PROF1, 
     CONCAT(p2.first_name, " ", p2.last_name) as PROF2 
from students s, 
     prof p1, 
     prof p2 
where s.prof1 = p1.prof_id 
and s.prof2 = p2.prof_id 
+0

+1左外連接更好,但確定:) – Andomar 2012-04-19 14:51:37