mysql 關聯查詢不解:p2.product_type = p1.product_type 分組目的
在 MySQL 關聯查詢中,使用 FROM 子句后指定的表別名是用來區分不同表的,它們可以隨意指定。這里,p2 是 product 表的別名,可以將其理解為對 product 表的重命名。
至于 p2.product_type = p1.product_type 條件,這是在執行查詢時的過濾條件,只匹配滿足該條件的行。該條件要求 p2 表中 product_type 列必須與 p1 表中 product_type 列相等。
該查詢還包含 GROUP BY 子句,按 product_type 列對結果行進行分組。這意味著查詢結果將按 product_type 值進行匯總,而不是按單個 product 行。
分組的目的在于聚合數據,以便對每一組 product_type 值進行計算。比如,AVG(price) 會計算出每一組 product_type 值的平均價格。
不使用分組時,查詢結果的平均價格是所有 product 行的平均值。而使用分組后,結果會按 product_type 值進行分組,再分別計算每一組的平均價格。