mysql - MySQLは記述された順序でクエリを実行しますか?

原文 mysql alias

MySQLは記述された順序でクエリを実行しますか?

エイリアスが使用された後、エイリアス(例:顧客AS c)が並んでいることがあります。通常、他のプログラミングでは、使用する前にまず変数を宣言します。しかし、Mysqlでは次のようなものを見てきました。

SELECT SUM(balance) AS Total,  
COUNT(account_id) AS Number,   
CONCAT(c.last_name, ', ', c.first_name) AS Name  
FROM accounts AS a   
INNER JOIN customers AS c  
USING (customer_id)  
GROUP BY (a.customer_id) ORDER BY Name;  


顧客のAS cが最後の3行目まで発生しない場合、CONCAT(c.last_name, ', ', c.first_name)はどのように実行できますか?また、エラーにはなりません。
答え
SQLでは、コードは特定の順序で評価されます。


最初にFROM句が評価され、関連するエイリアス
次にWHERE条件
その後SELECT句
最後にGROUP BY、HAVING句、ORDER BY


したがって、テーブルエイリアス名は選択時に完全に認識されます。
関連記事

mysql - 用語によるタグ検索は包含および除外

mysql - DjangoはMySQLグループレプリケーションをサポートしていません

mysql - mysqlの同時挿入-最初の挿入セットが完了する前に同じ挿入ストアドプロシージャを呼び出す

mysql - MySQLストアドプロシージャのすべてのテーブルにデフォルトの照合順序を設定する

mysql - mysqlにLOAD DATAのフィールドを文字列として解釈させる方法

java - AndroidのmySqlテーブルをHttpURLConnectionで更新する

php - Mysqlデータの並べ替え方法(f21.1、f23)

mysql - Talendは列をタイムスタンプとして解析できませんでした

mysql - JSONデータにエンティティが含まれていません

javascript - CKEditorが私の国の特殊文字を表示できないÆØÅ