统计联合子查询的计数查询中的Mysql错误

问题描述:

您可以检查此mysql查询,也许可以帮助解决它有什么问题吗?统计联合子查询的计数查询中的Mysql错误

当我运行它通过MySQL作为我的主人,我得到这个错误:

#1248 - 每一个派生表必须有它自己的别名

下面是代码:

mysql_query(" 
SELECT COUNT(*) 
FROM 
(

(SELECT 1 as sort_col,id,pic0 FROM `cronjob_reloaded` WHERE id IS NOT NULL AND id LIKE '%car%') 

UNION 

(SELECT 2 as sort_col,id,pic0 FROM `cronjob_reloaded` WHERE id IS NOT NULL AND category IN ('bmw')) 

ORDER BY sort_col 

) 
") 
Tyler!

Ty!

PS。前段时间我发布了一个不清楚的问题,请问管理员可以删除那个吗?抱歉给您带来不便。问题是here

+0

作为错误说添加别名如此糟糕的mysql不会弄糊涂你正在参考哪个表。 – 2011-12-20 19:37:22

+0

[Count mysql union type query]可能重复(http://*.com/questions/8580039/count-mysql-union-type-query) – ruakh 2011-12-20 19:37:59

+0

是的,我问过一个管理员可以删除那个,不清楚 – webmasters 2011-12-20 19:38:42

正如错误所述,派生表必须是别名。

SELECT COUNT(*) 
FROM 
(

(SELECT 1 as sort_col,id,pic0 FROM `cronjob_reloaded` WHERE id IS NOT NULL AND id LIKE '%car%') 

UNION 

(SELECT 2 as sort_col,id,pic0 FROM `cronjob_reloaded` WHERE id IS NOT NULL AND category IN ('bmw')) 

ORDER BY sort_col 

) q /* I added the alias "q" */ 
+0

你的第二个版本并不完全等同于OP的。注意'SELECT 1'和'2'。他真的在做一个'UNION ALL'。 – 2011-12-20 19:56:14

+0

@ypercube:好点。我会解决这个问题。 – 2011-12-20 19:59:30