Alias ไม่สามารถใช้กับ * ได้ ต้องระบุคอลัมน์ทีละตัว
MySQL ไม่รองรับ SELECT * AS alias FROM table ต้องระบุคอลัมน์และตั้ง alias ทีละคอลัมน์
รูปแบบคำสั่ง
SELECT aliasName.columnName1 AS alias1,
aliasName.columnName2 AS alias2,
...
FROM yourTableName AS aliasName;
ตัวอย่างสร้างตารางและข้อมูล
mysql> CREATE TABLE TableAliasDemo (
-> Id INT,
-> Name VARCHAR(100),
-> Age INT
-> );
Query OK, 0 rows affected (0.46 sec)
mysql> INSERT INTO TableAliasDemo VALUES(1,'John',23);
mysql> INSERT INTO TableAliasDemo VALUES(2,'Sam',24);
mysql> INSERT INTO TableAliasDemo VALUES(3,'David',26);
mysql> INSERT INTO TableAliasDemo VALUES(4,'Carol',20);
ข้อมูลทั้งหมด
mysql> SELECT * FROM TableAliasDemo;
+------+-------+------+ | Id | Name | Age | +------+-------+------+ | 1 | John | 23 | | 2 | Sam | 24 | | 3 | David | 26 | | 4 | Carol | 20 | +------+-------+------+ 4 rows in set (0.00 sec)
ใช้ Table Alias และ Column Aliases
mysql> SELECT alias.Id AS aliasForIdColumn,
-> alias.Name AS aliasForNameColumn,
-> alias.Age AS aliasForAgeColumn
-> FROM TableAliasDemo AS alias;
+------------------+--------------------+-------------------+ | aliasForIdColumn | aliasForNameColumn | aliasForAgeColumn | +------------------+--------------------+-------------------+ | 1 | John | 23 | | 2 | Sam | 24 | | 3 | David | 26 | | 4 | Carol | 20 | +------------------+--------------------+-------------------+ 4 rows in set (0.00 sec)
ประโยชน์ของ Table Alias:
- ทำให้ query สั้นลงเมื่อ join หลายตาราง
- แยกความคลุมเครือเมื่อคอลัมน์ชื่อซ้ำ
- อ่านง่ายขึ้น:
u.nameแทนusers.name
Column Alias (AS):
- เปลี่ยนชื่อคอลัมน์ในผลลัพธ์
ASเป็น optional:col AS name=col name- ใช้ใน ORDER BY, GROUP BY, HAVING ได้ (แต่ไม่ใช่ WHERE)
ตัวอย่าง JOIN กับ Alias:
SELECT u.name AS user_name, o.order_date, p.name AS product_name FROM users AS u JOIN orders AS o ON u.id = o.user_id JOIN products AS p ON o.product_id = p.id;