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