统计联合子查询的计数查询中的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
答
正如错误所述,派生表必须是别名。
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
作为错误说添加别名如此糟糕的mysql不会弄糊涂你正在参考哪个表。 – 2011-12-20 19:37:22
[Count mysql union type query]可能重复(http://*.com/questions/8580039/count-mysql-union-type-query) – ruakh 2011-12-20 19:37:59
是的,我问过一个管理员可以删除那个,不清楚 – webmasters 2011-12-20 19:38:42