迷茫2017-04-17 15:38:18
mysql の最後で SQL ステートメントを実行する場合、where 以降のフィルター条件が最初に来て、as B のエイリアスが後に来ます。
したがって、マシンが where の後にエイリアスを認識しても、それを認識しないため、B が存在しないと報告されます。
フィルター条件として B を使用する必要がある場合:
解決策: 外側に別のレイヤーをネストします。
select * from
(
select A as B from table
) t
where t.B = XXX -- 任意のフィルター条件
ネストがない場合、フィルタ条件として A のみを使用できます
大家讲道理2017-04-17 15:38:18
もちろん、それは存在しません。この b は、a
select a AS b FROM table where a = 1
巴扎黑2017-04-17 15:38:18
から t.b を選択してください
(
テーブルから A を B として選択
) t
ここで、t.b =xxxx
この時点の B は where で直接使用できます