SELECT 3 AS x, 5 as y, (x+y) as z
私が期待する結果。なぜ私は期待どおりにそのクエリが機能していないのですか?
x y z
3 5 8
私が得た結果。
#1054 - Unknown column 'x' in 'field list'
SELECT 3 AS x, 5 as y, (x+y) as z
私が期待する結果。なぜ私は期待どおりにそのクエリが機能していないのですか?
x y z
3 5 8
私が得た結果。
#1054 - Unknown column 'x' in 'field list'
SELECT句(および列の別名)が同時にかつ順不同で評価されます。つまり、zと同じポイントでxとyの列はまだ存在しません。
SELECT
(x+y) as z
FROM
(
SELECT 3 AS x, 5 as y
) t;
このように列エイリアスを参照することはできません。試す
SELECT (tmp.x + tmp.y) as z FROM (SELECT 3 AS x, 5 as y) tmp
のRef .: Subqueries in the FROM Clause
あなたはその質問に私のupvoteを持っています – motto
私はあなたの答えを受け入れるつもりです。私は、mysqlの仕組みの背後にある論理についてもっと知りたいと思っています:) – motto
@motto:ありがとう。これは、SQLだけでなく、MySQLベースでも一般的です(セットベース、宣言型)。 – gbn