【发布时间】:2021-02-11 17:15:27
【问题描述】:
我开始学习 Mysql,但在理解 相关子查询 时遇到问题,我搜索了定义说,它每行执行一次,但是当涉及到示例时:
DEPOT (N_Dpt, Name_Dpt, City)
STORE (N_Dpt #, N_Product #, Qt_Stored)
PRODUCT (N_Product, Label_Product, Price_U, Weight, Color)
每种产品类型的最高单价列表
SELECT Product_Label, Price_U FROM Product AS P1
WHERE Price = (SELECT MAX (Price_U) FROM PRODUCT P2
WHERE P2. Product_Label = P1. Product Label )
第一个问题:为什么它是相关子查询?
第二个问题:为什么我们不能使用 GROUP BY?
SELECT Product_label, MAX(Price_U) FROM PRODUCT GROUP BY Product_label
【问题讨论】:
-
1.它是相关的,因为 p2.product_label 等于 p1.product_label。 2. 可以使用 GROUP BY,但不能在相关子查询的上下文中使用。
-
但是我怎么知道我必须使用相关子查询,并且说它是相关的,因为我不明白''p2.....''
-
您不必使用相关子查询
-
另外,请注意您的架构中没有“价格”列
标签: mysql subquery correlated-subquery