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

时间:2015-10-11 17:18:16

标签: mysql sql

我有以下表格(表格):

       x            y
---------------------------
      3            1 
      1            4
      1            3

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

Select Min(y), x 
FROM (SELECT MIN(x), y FROM tablea);

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

  

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

如果我尝试:

Select Min(y), x 
FROM (SELECT MIN(x), y FROM tablea) as a;

我明白了:

  

错误代码:1054。“字段列表”中的未知列'x'

2 个答案:

答案 0 :(得分:3)

为避免错误unknown column,您需要将联盟添加到MIN(x)

Select Min(a.y), a.x 
FROM (SELECT MIN(x) AS x, y FROM tablea) as a;

但是为了得到您提出的结果,我会将您的查询重写为:

Select x, MIN(y) AS y
FROM tablea
WHERE x = (SELECT MIN(x) FROM tablea);

<强> SqlFiddleDemo

答案 1 :(得分:3)

SELECT x, y 
FROM tablea
order by x, y
limit 1