首頁 >資料庫 >mysql教程 >如何在MySQL中有效率地檢索每個經銷商的最低值行?

如何在MySQL中有效率地檢索每個經銷商的最低值行?

Susan Sarandon
Susan Sarandon原創
2024-11-28 09:13:11692瀏覽

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn