我有 SQL 查询:
SELECT min(m.density), m.metal_name
FROM metal m
INNER JOIN storage s ON m.id = s.metal_id
GROUP BY m.metal_name;
结果我得到:
+-----------+--------------+
| m.density | m.metal_name |
+-----------+--------------+
| 1200 | GOLD |
+-----------+--------------+
| 1200 | TIN |
+-----------+--------------+
| 1600 | COPPER |
+-----------+--------------+
| 1800 | PLATINUM |
+-----------+--------------+
我想要的结果是这样的(只有密度的最小值):
+-----------+--------------+
| m.density | m.metal_name |
+-----------+--------------+
| 1200 | GOLD |
+-----------+--------------+
| 1200 | TIN |
+-----------+--------------+
有一个简单的方法可以达到这个结果吗?
你可以尝试这样的事情:
SELECT m.density,
m.metal_name
FROM metal m
WHERE m.density = (SELECT MIN(a.density)
FROM metal a
JOIN storage s
ON a.id = s.metal_id);
选择金属及其密度,使密度等于存储中可用的最小密度。