【MySQL】AS - テーブル・カラムの別名
MySQLのASについて解説します。
検証環境
AS
AS句は“テーブルやカラムに別名を付ける句”です。
別名によって、クエリを短縮することができます。
基本構文
対象 AS 別名
対象はテーブル名やカラム名です。
ASに続く別名を付けることができます。
サンプル
次のshopsテーブルとitemsテーブルについて、テーブルとカラムに別名を付けるサンプルを示します。
mysql> DESC shops;
+-------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
+-------+-------------+------+-----+---------+----------------+
2 rows in set (0.00 sec)
mysql> DESC items;
+---------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+----------------+
| id | int | NO | PRI | NULL | auto_increment |
| name | varchar(20) | YES | | NULL | |
| price | int | YES | | NULL | |
| stock | int | YES | | NULL | |
| shop_id | int | YES | MUL | NULL | |
+---------+-------------+------+-----+---------+----------------+
5 rows in set (0.01 sec)
テーブルに別名を付ける
mysql> SELECT
-> shops.name, fruits.name, fruits.price, fruits.stock
-> FROM shops
___ih_hl_start
-> INNER JOIN items AS fruits ON shops.id = fruits.shop_id;
___ih_hl_end
+-------------+-----------+-------+-------+
| name | name | price | stock |
+-------------+-----------+-------+-------+
| Fruits Shop | Apple | 200 | 10 |
| Fruits Shop | Orange | 150 | 3 |
| Food Shop | Pineapple | 1100 | 3 |
| Food Shop | Grapes | 3500 | 1 |
+-------------+-----------+-------+-------+
4 rows in set (0.00 sec)
4行目のitems AS fruitsの部分でitemsテーブルに別名としてfruitsを付けています。
別名は結合条件の部分(shops.id = fruits.shop_id)のように使うことが可能です。
カラムに別名を付ける
mysql> SELECT
___ih_hl_start
-> shops.name, items.name AS fruits, items.price, items.stock
___ih_hl_end
-> FROM shops
-> INNER JOIN items ON shops.id = items.shop_id;
+-------------+-----------+-------+-------+
| name | fruits | price | stock |
+-------------+-----------+-------+-------+
| Fruits Shop | Apple | 200 | 10 |
| Fruits Shop | Orange | 150 | 3 |
| Food Shop | Pineapple | 1100 | 3 |
| Food Shop | Grapes | 3500 | 1 |
+-------------+-----------+-------+-------+
4 rows in set (0.00 sec)
2行目のitems.name AS fruitsの部分でitemsテーブルのnameカラムに別名としてfruitsを付けています。
クエリ実行結果のように、カラムに別名を付けると表の列名に適用されます。
また、カラムの別名はGROUP BY句やORDER BY句、HAVING句で使用できますが、WHERE句では使用できません。