尝试从以下链接完成 MySQL 中的 Northwind 示例数据库的练习。
http://laerer.rhs.dk/andersb/basicprog/database/exercises/northwindselect.htm
问题“使用 SUBQUERY...从表products中找到最小的unitPrice。使用此价格查找具有最低价格的产品的productID和productName。” 让我有点困惑。
以下查询
SELECT ProductID, ProductName
FROM products
ORDER BY UnitPrice
LIMIT 1;
似乎产生了正确的答案,但不使用 SUB QUERY。这是从另一列具有 MIN/MAX 值的行生成字段的标准做法吗?即不使用聚合函数MIN()
/ MAX()
。
我猜这种方法在计算上会很昂贵;让 DBMS 在打印第一行之前对表进行排序。SUB QUERY 或任何其他方法会更有效吗?也许使用适当的聚合函数而不是ORDER BY
. 如果是这样,我应该使用什么查询?