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" станет идентификатором проблемы.
Нельзя ли использовать другую таблицу в предложении 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
Большое спасибо за вашу помощь.