首页 > 数据库 > mysql教程 > 如何在MySQL中高效地检索每个经销商的最低值行?

如何在MySQL中高效地检索每个经销商的最低值行?

Susan Sarandon
发布: 2024-11-28 09:13:11
原创
684 人浏览过

How to Efficiently Retrieve Rows with the Lowest Value for Each Dealer in MySQL?

使用 MySQL 检索多个经销商的最低值行

在包含 id、名称、值和经销商等列的数据库中,您可以旨在检索每个不同经销商具有最低值的行。在尝试使用 MIN() 和 GROUP BY 时,您尚未找到解决方案。

推荐解决方案:

解决方案 1:

SELECT t1.* FROM your_table t1
JOIN (
  SELECT MIN(value) AS min_value, dealer
  FROM your_table 
  GROUP BY dealer
) AS t2 ON t1.dealer = t2.dealer AND t1.value = t2.min_value
登录后复制

解决方案 2 (更快):

SELECT t1.* FROM your_table t1
LEFT JOIN your_table t2
ON t1.dealer = t2.dealer AND t1.value > t2.value
WHERE t2.value IS NULL
登录后复制

解释:

解决方案 1 使用子查询来查找每个经销商的最小值。然后,它将这个子查询与主表连接起来以检索相应的行。

解决方案 2 利用自连接来有效地查找每个经销商具有最低值的行。它使用 LEFT JOIN,检查是否存在具有较低值的行。如果不是,则为该经销商的最低值。

其他信息:

这是一个常见的 MySQL 问题。请参阅此处的文档:“Rows Holding the Group-wise Maximum/Minimum of a certain Column”了解更多详细信息。

以上是如何在MySQL中高效地检索每个经销商的最低值行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板