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 值进行分组,再分别计算每一组的平均价格。