Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  ...  /  The Row Holding the Maximum of a Certain Column

5.6.2 包含特定列最大值的行

任务:找到最贵商品的编号、经销商和价格。

这可以使用子查询轻松完成:

SELECT article, dealer, price
FROM   shop
WHERE  price=(SELECT MAX(price) FROM shop);

+---------+--------+-------+
| article | dealer | price |
+---------+--------+-------+
|    0004 | D      | 19.95 |
+---------+--------+-------+

另一个解决方案是使用 LEFT JOIN,如下所示:

SELECT s1.article, s1.dealer, s1.price
FROM shop s1
LEFT JOIN shop s2 ON s1.price < s2.price
WHERE s2.article IS NULL;

你也可以通过对所有行按价格降序排序,然后使用 MySQL 特定的 LIMIT 子句,像这样:

SELECT article, dealer, price
FROM shop
ORDER BY price DESC
LIMIT 1;
Note

如果有多个最贵商品,每个的价格都是 19.95,那么 LIMIT 解决方案将只显示其中一个。