MySQL - 选择另一列的最小值后,选择列的最小值

Jar*_*iel 6 mysql sql

我有以下表(tablea):

       x            y
---------------------------
      3            1 
      1            4
      1            3
Run Code Online (Sandbox Code Playgroud)

结果我想要x = 1和y = 3(尽可能低x是最高优先级,让y尽可能低是优先级较低).所以我想要一个类似的SQL语句:

Select Min(y), x 
FROM (SELECT MIN(x), y FROM tablea);
Run Code Online (Sandbox Code Playgroud)

但这给了我以下错误代码:

错误代码:1248.每个派生表必须有自己的别名

如果我尝试:

Select Min(y), x 
FROM (SELECT MIN(x), y FROM tablea) as a;
Run Code Online (Sandbox Code Playgroud)

我明白了:

错误代码:1054."字段列表"中的未知列'x'

Luk*_*zda 3

To avoid error unknown column you need to add allias to MIN(x):

Select Min(a.y), a.x 
FROM (SELECT MIN(x) AS x, y FROM tablea) as a;
Run Code Online (Sandbox Code Playgroud)

But to get results as you proposed I would rewrite your query as:

Select x, MIN(y) AS y
FROM tablea
WHERE x = (SELECT MIN(x) FROM tablea);
Run Code Online (Sandbox Code Playgroud)

SqlFiddleDemo