Mysql 如何按矩阵顺序选择顶差值

Mysql 如何按矩阵顺序选择顶差值,mysql,sql,Mysql,Sql,我有一张这样的桌子 我想得到每个表中有min responsetime的行 我尝试了以下查询: select tablename, index1, index2, min(responsetime) from tableconf group by tablename order by responsetime asc 但它没有给我想要的 我想要的输出是 +------------------+------------------+---

我有一张这样的桌子

我想得到每个表中有min responsetime的行

我尝试了以下查询:

select tablename,
       index1, 
       index2, 
       min(responsetime) 
from   tableconf 
group by tablename 
order by responsetime asc
但它没有给我想要的

我想要的输出是

+------------------+------------------+--------+--------------+
|    tablename     |     index1       | index2 | responsetime |
+------------------+------------------+--------+--------------+
| salesorderheader | TotalDue         | NULL   |       6.1555 |
| salesterritory   | Name             | NULL   |     11.66667 |
| store            | BusinessEntityId | Name   |       3.6222 |
| previous         | previous         | NULL   |      5.03333 |
| NONE             | NONE             | NULL   |          5.6 |
+------------------+------------------+--------+--------------+
我应该使用什么查询来获取我想要的输出(根据前面的答案编辑)

我不知道是否所有SQL语法都接受逗号分隔的where参数。另一个基于投票率最高的答案的选项是使用连接:

select *
from tableconf t
inner join (
           select tablename, min(responsetime) min_rt
           from tableconf t2
           group by tablename
           ) t3 on t.tablename = t2.tablename and t.responsetime = t2.min_rt

选择每个表名的最小日期。对这些行使用
IN
子句来获取行:

select *
from tableconf 
where (tablename, responsetime) in
(
  select tablename, min(responsetime)
  from tableconf 
  group by tablename
);

由于索引值不同,这将导致组中出现重复。我尝试过这种方法,但它给了我不止一行具有tablename值“store”的行。您如何决定为分组选择什么
index1
index2
值?@Siyual:这是每个表的最小响应时间的整个记录名字。@ThorstenKettner啊,误读了要求。我明白了。你的输出是多少?不想要的区别是什么?谢谢,这是工作!,但是如何将具有相同最小响应时间的表名的值限制为一行呢?我不理解这个问题。