理解 mysql 關聯查詢中的分組和別名
在 mysql 關聯查詢中,使用子查詢或連接多個表時經常需要使用關聯和分組。一個常見的問題是為什么需要使用 join 語句中的 on 條件和分組條件。
on 條件中的別名:p2.product_type = p1.product_type
p2 是一個別名,它代表 from product as p2 中的 product 表。使用別名是為了簡化查詢,避免使用長表名。
分組條件:group by p2.product_type
分組條件用于將查詢結果按 p2.product_type 列的值進行分組。分組的目的是計算同一 product_type 的平均值,而不是計算整個表的平均值。
如果不分組
如果不分組,查詢將計算所有行的平均值,而不僅僅是不同 product_type 的平均值。例如,以下查詢將計算所有產品的平均價格:
select avg(price) from product;
登錄后復制
分組后
分組后,查詢將分別計算每種 product_type 的平均價格:
SELECT p2.product_type, AVG(p2.price) FROM product AS p2 GROUP BY p2.product_type;
登錄后復制
通過分組,我們可以獲得更具體的信息,比如不同產品類型的平均價格。