主要查询中的MySQL访问子查询列名称其中子句

问题描述:

试图将条件置于检查子查询中的值的主要where子句中。主要查询中的MySQL访问子查询列名称其中子句

SELECT total, (select my_count from x where .. etc) as XXX 

FROM sales 

WHERE XXX > 0; 

我得到一个未知的列错误。任何想法为什么?

select total, xxx 
from (
    SELECT total, (select my_count from x where .. etc) as XXX 
    FROM sales 
    ) 
WHERE XXX > 0; 
+0

如果我尝试这个,我得到一种错误,不能修复http://*.com/questions/1888779/every-derived-table-must-have-its-own-alias – Brettski 2012-04-02 00:40:39

+0

@Brettski:只是分配FROM FROM子查询的别名,如:... FROM ... ... some_alias WHERE ...' – 2012-04-02 06:10:26

这是一个很奇怪的查询。
为什么不把WHERE条件放在子查询中?

SELECT total, (select my_count from x where .. AND my_count > 0) as XXX 
FROM sales 

而且出现错误是因为您无法将子查询的结果用作列名。

+0

我有几列来自子查询,基本上是在过去1,3,6个月的订单,想根据结果做一些过滤 – Brettski 2012-04-02 00:17:40

+0

但是你没有加入主要查询的任何内容。你能提供一个更好的例子吗? – rgafonso 2012-04-02 00:47:40

+0

如果my_count 2012-04-02 19:12:12