我的数据库结构包含列:id, name, value, dealer.我想检索与最低行value的每一个 dealer.我一直在试图乱用MIN()和GROUP BY,还是-无解.
xda*_*azz 18
解决方法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
Run Code Online (Sandbox Code Playgroud)
溶液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
Run Code Online (Sandbox Code Playgroud)
这个问题很有名,所以在Mysql的手册中有一个特殊的页面.