1

現在、相互に相関するすべてのテーブルを表示するクエリを実行しようとしています。テーブルのデザインは私が作りませんでした。だから私は作成中にいくつかの問題に遭遇しています:office_hoursテーブルがテーブルとどのように相関するか明確ではありませんscheduleか? 全体として、クエリを介して相関するすべてのテーブルを適切に表示するにはどうすればよいですか?

SELECT * 
FROM schedule
INNER JOIN semester ON schedule.semester_id = semester.id
INNER JOIN office_hours ON office_hours.id = schedule.???
4

3 に答える 3

3

IDfrom tableはschedule列のみでauto_incrementあり、schedulefromから結合する適切な方法office_hoursoffice_hours.schedule_id = schedule.semester_id.

select      *
from        schedule 
            inner join semester 
                on schedule.semester_id = semester.id
            inner join office_hours
                on office_hours.schedule_id = schedule.semester_id

更新 1

select      *
from        schedule 
            inner join semester 
                on schedule.semester_id = semester.id
            inner join office_hours
                on office_hours.schedule_id = schedule.semester_id
            INNER JOIN faculty
                ON faculty.id = office_hours.faculty_id
            INNER JOIN Section
                ON Section.faculty_ID = faculty.id AND
                    Section.Schedule_ID = Schedule.ID
            INNER JOIN class
                ON Class.ID = Section.Class_ID
            INNER JOIN major_class_br
                ON major_class_br.class_ID = Class.ID
            INNER JOIN  major_minor 
                ON major_class_br.major_minor_id = major_minor.ID

IDすべての列またはリンク列が各テーブルに存在すると想定されるため、INNER JOIN使用されました。それ以外の場合は、 を使用しますLEFT JOIN

于 2012-11-06T13:56:26.330 に答える
0

両方のテーブルにある ID を使用する必要があります。

...
inner join office_hours on office_hours.schedule_id = schedule.id;
于 2012-11-06T13:56:54.493 に答える
0

これを試してください:

SELECT *
FROM 
SCHEDULE 
INNER JOIN semester 
ON schedule.semester_id = semester.id
INNER JOIN office_hours
ON office_hours.schedule_id = schedule.id
于 2012-11-06T14:00:53.463 に答える