2012-11-06 3 views
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.??? 
+0

모습을 .. .) –

답변

3

나는 테이블 schedule에서 ID는 단지 auto_increment 열 및 office_hours에서 scheduleoffice_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 

UPDATE 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을 사용하십시오.

+0

'schedule.semester_id'는'semester.id'와 상관 관계가있는 것 같네요, 그렇죠? –

+0

은 그 쿼리에'faculty','class','major_minor','major_class_br' 테이블을 포함 할 것입니까? 죄송합니다. 매우 새롭습니다. – techAddict82

+1

예, 잠시 기다려주세요. 답변을 업데이트하겠습니다. –

0

당신은 두 테이블에있는 ID를 사용해야합니다 :

... 
inner join office_hours on office_hours.schedule_id = schedule.id; 
0

Tryu이 : 물론 그들을 포함하는 생각 디자이너 가정 정의 된 외래 키 (에서

SELECT * 
FROM 
SCHEDULE 
INNER JOIN semester 
ON schedule.semester_id = semester.id 
INNER JOIN office_hours 
ON office_hours.schedule_id = schedule.id