2016-04-30 29 views
1

工作忽略计数当我运行此查询与零个值不与子查询

select id , (select count(*) ....) as c 
    from Foo 
     where c > 0 
     order by c desc 

ERROR 1054 (42S22): Unknown column 'c' in 'where clause'

所以,我怎么能忽略计数与零个值与子查询?

+3

*不允许在WHERE子句中引用列别名,因为当执行WHERE子句时,列值可能还没有确定* –

+0

thanks @juergend,但是我怎样才能忽略零计数值? – Youssef

+0

h您查询它的方式总是一个。请张贴您的表格结构并解释您想要计算的内容 – e4c5

回答

0

试试这个:

select * from (
    select id, (select count(*)...) as c from Foo 
) x 
where c > 0 
order by c desc 
0
As from MySQL site: 

标准SQL不允许在WHERE子句中的列别名引用。这种限制是强加的,因为当WHERE子句被评估时,列值可能还没有被确定。

参阅MySQL

任何方式:

您可以使用GROUP BY别名,ORDER BY或HAVING子句来引用列。