【发布时间】:2017-11-04 17:06:19
【问题描述】:
以下查询从products 表中选择每个产品线中价格最低的产品:
SELECT
a.productline, a.productCode, a.productName, a.buyprice
FROM
products a
LEFT JOIN
products b ON a.productline = b.productline
AND b.buyprice < a.buyprice
WHERE
b.productcode IS NULL;
我只是无法理解使用表a 中的给定productLine 的查询如何找到最低的buyPrice。对于a 中的某行和某个productLine,表b 中可能有多行。 1)那么如何选择最低的? 2) b.productcode 怎么可能永远是 NULL 作为表 a 和 b 是同一张表?
【问题讨论】:
-
去掉 WHERE 子句并使用
SELECT *- 然后你会看到 LEFT JOIN 是如何工作的。