2011-11-18 63 views
-1
select position from 
    (select prefix, min(position) 
    from Chart_Position 
    group by chartnum) as Foo; 

给出:MySql:如果子查询首先用min()或max()选择它,我怎么能通过名称选择一列?

ERROR 1054(42S22):在 '字段列表' 未知列 '位置'

I select * from ...下面的列被示出:

+----------+---------------+ 
| prefix | min(position) | 
+----------+---------------+ 
| 1964_232 |   87 | [rows truncated] 

我试图选择标题为“min(position)”的列,但我无法弄清楚如何引用它。这似乎是min()造成我的麻烦。

谢谢你的采访!

编辑:发现它!我需要在子查询中将min(位置)的结果别名。像这样:

select position from 
    (select prefix, min(position) as position 
    from Chart_Position 
    group by chartnum) as Foo; 
+2

如果在发布问题后发现问题的答案不到一分钟,那么在发布问题之前,您已经不够努力了。 – JNK

+0

道歉。实际上我在发帖之前花了一段时间搜索,已经输入了问题 - 我想要发布它以防其他人的搜索发现。我是新来的,仍然在学习...... – MatrixManAtYrService

回答

0

你找到它了;您可以在派生表子查询中为表达式列使用定义别名,然后您可以通过外部查询中的别名来引用它们。