首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

MySQL 等值連接查詢報錯:別名使用不當導致的語法錯誤修正

     編輯:程式設計綜合問答

錯誤場景

給表起別名後,SELECT 列表與 ON 條件中未統一使用別名,導致列名解析失敗。

錯誤 SQL 示例

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;

核心規則

  1. 一旦在 FROM 子句中為表指定別名(AS 可省略),後續所有引用該表的列必須使用別名限定。
  2. 別名適用範圍:SELECT 列表、WHERE、ON、GROUP BY、ORDER BY 等子句。
  3. 別名建議簡短有意義(如 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 規範寫法的基本要求。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved