Отсутствует ключевое слово в синтаксисе JOIN
Я искал сайт, прежде чем задать вопрос, но не сталкивался с чем-то связанным. Я уверен, что это смехотворно основная ошибка, я изучал Oracle SQL только с компьютера на протяжении 4 месяцев. Я планирую взять 1z0-051 в конце этого месяца, так что пройдусь по всем главам. В этом пункте я пытаюсь получить имя, должность, зарплату, отдел и город сотрудников, у которых зарплата выше, чем средняя зарплата на самой низкооплачиваемой должности (CLERK). Я продолжаю получать недостающее ключевое слово, хотя?
SELECT e.first_name,
e.last_name,
j.job_title,
e.salary,
d.department_name,
l.city
FROM employees e
JOIN jobs j
WHERE salary >
(SELECT AVG(salary) FROM employees WHERE job_id LIKE '%CLERK%'
) ON e.job_id = j.job_id
JOIN departments d
ON e.department_id = d.department_id
JOIN locations l
ON d.location_id = l.location_id
ORDER BY salary
3 ответа
У тебя есть JOIN
-WHERE
-ON
последовательность, которая неверна.
Должно быть что-то вроде этого (при условии WHERE
не является частью вашего условия присоединения):
FROM employees e
JOIN jobs j ON e.job_id = j.job_id
....
....
WHERE e.salary >
(SELECT AVG(salary) FROM employees WHERE job_id LIKE '%CLERK%')
ORDER BY ...
ОТ сотрудников e ПРИСОЕДИНЯЙТЕСЬ к рабочим местам j << Вы пропускаете предложение "ON" между сотрудниками и рабочими местами здесь >> ГДЕ зарплата
Кроме того, переместите предложение WHERE после всех соединений.
select
fields
from
table
join
join "ON" clause
join
join "ON" clause
where
some condition
group by
whatever grouping if aggregates
order by
if you want something certain order.