我有以下表格(表格):
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'
答案 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