Либо просто используйте исходное имя столбца - это должно работать, пока в таблице MANAGERS
нет столбца ID
:
SELECT NAME, ID AS M_ID
FROM EMPLOYEES
WHERE EXISTS (
SELECT 1
FROM MANAGERS
WHERE MANAGERID = ID
)
Или еще лучше, используйте псевдоним для таблиц:
SELECT e.NAME, e.ID AS M_ID
FROM EMPLOYEES AS e
WHERE EXISTS (
SELECT 1
FROM MANAGERS AS m
WHERE m.MANAGERID = e.ID
)
Псевдонимы столбцов могут использоваться только в предложениях ORDER BY
, GROUP BY
и HAVING
. Стандартный SQL не позволяет ссылаться на псевдоним столбца в предложении WHERE
. Это ограничение наложено потому, что при выполнении кода WHERE
значение столбца может еще не быть определено.
Кстати, использование подвыбора для данной проблемы может быть не лучшим решением. Хотя в этом простом случае я предполагаю, что оптимизатор запросов MySQL может найти простой способ в плане выполнения.