給表起別名後,SELECT 列表與 ON 條件中未統一使用別名,導致列名解析失敗。
SELECT c.*, s.*
FROM classeshql c
INNER JOIN studenthql s
ON c.cid = s.cid; -- 若此處寫成 classeshql.cid = studenthql.cid 會報錯
SELECT c.*, s.*
FROM classeshql AS c
INNER JOIN studenthql AS s
ON c.cid = s.cid;
FROM 子句中為表指定別名(AS 可省略),後續所有引用該表的列必須使用別名限定。SELECT 列表、WHERE、ON、GROUP BY、ORDER BY 等子句。c、s、u),提升可讀性。SELECT
u.username,
o.order_no,
p.product_name
FROM `user` AS u
JOIN `order` AS o ON u.id = o.user_id
JOIN `product` AS p ON o.product_id = p.id
WHERE u.status = 1;
MySQL 別名一旦啟用即全局生效,統一使用別名可避免「Unknown column」等錯誤,也是 SQL 規範寫法的基本要求。