0
以下のコードでwhere句とhaving句を置き換えると、where句でunknown column tsalという1054エラーが発生します。どうして?また、私はどこで句を使用する必要がどこで使用する必要があります私は具体的にケースを教えてください。SQLクエリでwhere句が機能しないのはなぜですか?
select employee_id,salary*months as tsal1
from Employee as h
having tsal1=(select max(e.tsal) as metsal
from (select employee_id,salary*months as tsal
from Employee) as e)
'where'句でそのエイリアスを使用できない主な理由の1つは、SQLが**クエリ**と同じ順序で実行されないということです。 'from'節と' where'節は** select節の前に**評価されます。私は、この優れたブログを[SQL操作の真実性についての初心者の手引]というトピックでお勧めします(https://blog.jooq.org/2016/12/09/a-beginners-guide-to-the-true -order-of-sql-operations /) –