Мой CTE кажется правильно написанным, но я получаю ошибку. Что в этом плохого?

#mysql #sql

Вопрос:

Я пытаюсь изучить общие табличные выражения и не понимаю, почему я получаю эту ошибку.

Я хочу получить имя сотрудника и название его проекта для всех сотрудников, чья зарплата превышает половину максимальной зарплаты.

Вот эти таблицы:

введите описание изображения здесь

И это код, который я использую

 with cte1 as (
  select max(salary) as ms from employees
)
select e.first_name, p.title
from employees e
join employees_projects ep on ep.employee_id = e.id
join projects p on p.id = ep.project_id
where  e.salary > (cte1.ms) / 2 
 

То, что я пытаюсь сделать, — это изучить CTE, поэтому мне нужно знать, что не так с тем, что я делаю с CTE, почему я получаю ошибку?

Ошибка в том, что

ОШИБКА 1054 (42S22) в строке 21: Неизвестный столбец «cte1.m» в предложении «где»

Спасибо!

Комментарии:

1. Вы не ссылаетесь на CTE в своем заявлении select. Вы, вероятно, захотите присоединиться к нему…

2. CTE является избыточным в данном конкретном случае — используйте подзапрос в WHERE.