我有下表
+----+----------+-----+
| id | priority | sub |
+----+----------+-----+
| 1 | 1 | A |
| 2 | 3 | A |
| 3 | 4 | A |
| 4 | 2 | B |
| 5 | 9 | B |
+----+----------+-----+
我正在尝试为每个子获取具有最高优先级的行。所以这个结果:
+----+----------+-----+
| id | priority | sub |
+----+----------+-----+
| 3 | 4 | A |
| 5 | 9 | B |
+----+----------+-----+
我尝试分组,但这会产生不可预测的结果。我的猜测是嵌套查询,首先开始查找最高优先级,如下所示:
select max(priority),sub from t group by sub
这给了我
+----------+-----+
| priority | sub |
+----------+-----+
| 4 | A |
| 9 | B |
+----------+-----+
但我也需要 ID,添加到查询中显然给了我错误的 ID,将这个结果与同一张表上的查询结合起来给了我一个错误 (ER_NONUNIQ_TABLE(1066)),这是有道理的......任何可以推动我的人在正确的方向?