Да, HAVING
- это "syntacti c sugar" в том смысле, что его всегда можно заменить подзапросом или CTE. Отмечу, что некоторые базы данных имеют тенденцию материализовать подзапросы, что может добавить небольшую дополнительную нагрузку. И MySQL расширяет использование HAVING
в неагрегированных контекстах.
При этом запятые в предложении FROM
на хуже , чем syntacti c sugar. Они по сути устарели, их заменил правильный синтаксис JOIN
в 1990-х годах - это последнее тысячелетие. Они менее мощные, потому что они не поддерживают внешние объединения.
Итак, вы должны сосредоточиться на изучении правильного, явного, стандартного , читаемого синтаксиса JOIN
, а не беспокоиться о HAVING
.
FROM Employee e JOIN
Department d
ON e.DepartmentID = d.DepartmentID
Вы также должны научиться квалифицировать все ссылки на столбцы в своих запросах.