0

現時点では、予定とユーザーの 2 つのテーブルがあります。

予定_id | 時間 | 教師ID | 学生証
1 | 11 | 2 | 1
2 | 12 | 2 | 1

ユーザー ID | 名前
1 | 学生
2 | 先生

望ましい結果:

予定_id | 時間 | 先生の名前 | 学生の名前
1 | 11 | 先生 | 学生
2 | 12 | 先生 | 学生

基本的に、予定テーブルから SELECT * を実行したいのですが、クエリで ID を取得する代わりに、名前でそれらを置き換えたいと考えています。一時テーブルとJOINを作成して遊んでみましたが、わかりませんでした。どんな助けでも素晴らしいでしょう、ありがとう!

4

2 に答える 2

2

これはどうですか?

SELECT
    appointment_id,
    time,
    u.name AS teachername,
    v.name AS studentname
FROM
    appointments AS a
LEFT JOIN
    users AS u ON
    a.teacher_id = u.user_id
LEFT JOIN
    users AS v ON
    a.student_id = v.user_id

このSQL Fiddleで確認できます

于 2013-03-29T21:50:55.100 に答える
1

これを試して

   select a.appointment_id , a.time ,b.name as teachername ,
          c.name as studentname
   from appointments a 
   inner join users b
   on a.teacher_id = b.user_id
   inner join users c
   on a.student_id = c.user_id

デモはこちら

出力:

   APPOINTMENT_ID   TIME    TEACHERNAME     STUDENTNAME
          1          11     teacher         student
          2          12     teacher         student
于 2013-03-29T21:56:10.750 に答える