迷惑MySQL子查询

时间:2011-08-14 19:10:47

标签: mysql sql subquery mysql-error-1054

我正在尝试学习如何进行子查询,我真的很困惑这个简单的例子出了什么问题。

我的第一次尝试是

SELECT COUNT(SELECT * FROM my_table);

但这不起作用(我想是因为我需要一个临时表?)所以我试过这个:

SELECT COUNT(items)
FROM (SELECT * FROM my_table) AS items;

为什么我会得到以下内容:

  

1054:“字段列表”中的未知列“项目”

1 个答案:

答案 0 :(得分:2)

您收到错误,因为在此示例中items是一个表(因为它是别名),而不是列。最简单的解决方案是使用:

SELECT COUNT(*)
  FROM (SELECT * FROM my_table) AS items

聚合函数(IE:COUNT,MIN,MAX,AVG等)仅适用于列引用,但有些函数接受[table]。*作为参数。