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
句でのみ使用できます。WHERE
標準 SQL では、句で列の別名を参照することはできません。この制限が課されるのは、WHERE
コードの実行時に列の値がまだ決定されていない可能性があるためです。
ところで、特定の問題に対して副選択を使用することは、最善の解決策ではない可能性があります。この単純なケースでは、MySQL クエリ オプティマイザが実行計画で簡単な方法を見つけることができると思います。