1

私はmysqlを使用しています。

私は2つのテーブルを持っています

Students:
stud_num 
prof1
prof2

Prof
prof_id
first_name
last_name

Prof Idは、学生テーブルの外部キーです。

stud_numとprof1を名前と名前として取得し、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

これは動作しません。これを行う簡単な方法はありますか?

4

3 に答える 3

3

教授のテーブルに2回参加しますが、教授のIDの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
         LEFT join prof p1
            on s.prof1 = p1.prof
         LEFT join prof p2
            on s.prof2 = p2.prof
于 2012-04-19T14:47:36.210 に答える
3

Profテーブルは、2つの異なる名前で2回結合する必要があります。これを試して:

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
于 2012-04-19T14:48:37.327 に答える
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
于 2012-04-19T14:45:55.917 に答える