MySQL:找到MAX(var1)但返回该条目的var2

时间:2012-01-04 17:58:26

标签: mysql group-by

我有一个表(或者说是一个长连接),其中包含字段(id,name,prio),其中我将ID分组

SELECT id, group_concat(name)
FROM my_table
GROUP BY id

现在我还希望有一个名为最低prio分数的专栏。像

SELECT id, group_concat(name), min(prio)
FROM my_table
GROUP BY id

但我不想拥有prio的最小值,而是希望看到相应的'name'

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

我认为您可以将其作为子查询,然后将其加入到表格中:

SELECT * FROM (
    SELECT id, group_concat(name), min(prio) AS lowest
        FROM my_table
    GROUP BY id ) foo
JOIN my_table mt ON foo.lowest = mt.prio AND foo.id=mt.id;

答案 1 :(得分:1)

你不能在一个选择中使用,使用连接选择

SELECT a.id, ..., b.name FROM my_table JOIN ( SELECT id, name FROM my_table ORDER BY prio ASC LIMIT 1 ) AS b ON b.id = a.id ...