0
SELECT
s.session_name semester
FROM
lsx.elsp_session s,
lsx.elsp_course_offering co,
its.ACCOUNT ac
LEFT OUTER JOIN lsx.elsp_class_attendance ca on ca.course_id = CO.ID and ca.student_number = ac.id
WHERE co.session_id = s.session_id
ORA-00904 오류가 발생하며 "CO.ID"가 잘못된 식별자 인 것으로 보입니다. 그러나 "lsx.elsp_course_offering co"테이블을 FROM 목록의 마지막에 놓으면 "ac.id"가 문제 식별자가됩니다.ORA-00904 절에 3 개의 테이블이있는 OUTER JOIN을 사용하는 경우
JOIN 절에 다른 테이블을 사용할 수 있습니까? MySQL을 사용하여 이와 같은 성공적인 쿼리를 작성한 것을 기억합니다.
Oracle 9.2.0.8.0을 사용하고 있습니다. 당신의 도움을
SELECT s.session_name semester FROM lsx.elsp_session s
INNER JOIN lsx.elsp_course_offering co
ON co.session_id = s.session_id
LEFT OUTER JOIN lsx.elsp_class_attendance ca
ON ca.course_id = co.id
LEFT OUTER JOIN its.account ac
ON ca.student_number = ac.id
많은 감사 : 내가받은 조언에 따라
는, 나는 내가 여기에 쿼리를 재 작업 할 때 예상대로 작동 가입을 얻을 수있었습니다.
개인적으로 나는 당신이 이것을하는 방식을 좋아하지 않습니다. 나는 Inner Join (s with co), Cross Join (ac with) 및 하나의 Left Outer (ca)를 봅니다. 조인에 쉼표를 사용하지 말고 해당 조인 절을 사용하십시오. –
찾아 주셔서 감사합니다. 본질적으로 student_id와 course_id의 lsx.elsp_class_attendance 테이블에 참여해야하지만 출석 데이터가 없을 수 있으므로 외부 참여가 필요합니다. –