MySQL查询中的交叉连接和引用问题、字段列表错误

MySQL查询中的交叉连接和引用问题、字段列表错误,mysql,mysql-error-1054,Mysql,Mysql Error 1054,我正在尝试运行以下MySQL查询: mysql> SELECT num.value, agro.mean, agro.dev -> FROM randomNumbers num -> CROSS JOIN ( -> SELECT AVG(value) AS mean, STDDEV(value) AS dev -> FROM randomNumbers -> ) agro

我正在尝试运行以下MySQL查询:

mysql> SELECT num.value, agro.mean, agro.dev
    -> FROM randomNumbers num
    -> CROSS JOIN (
    ->         SELECT AVG(value) AS mean, STDDEV(value) AS dev 
    ->         FROM randomNumbers
    ->     ) agro
    -> ORDER BY num.value;
这个例子来自这里,randomNumbers只是一个随机数列表

我得到错误:错误1054(42S22):“字段列表”中的未知列“num.value”。当我试着调试它时,我意识到我不知道agro在做什么。我假设它允许我用前缀agro引用mean和dev,但是它没有真正的意义,我不知道为什么这个语句不起作用。这句话很管用:

mysql> select num.value from randomNumbers num;

你能帮忙吗?谢谢。

agro是子选择创建的结果集的别名-这是位于FROM子句中的子选择的要求,以便可以正确引用列。我不知道为什么您的查询工作不正常。您是否尝试过自行运行subselect

SELECT AVG(value) AS mean, STDDEV(value) AS dev FROM randomNumbers;
这可能无法修复任何问题,只能尝试在别名之前添加
AS

SELECT num.value, agro.mean, agro.dev
FROM randomNumbers AS num
    CROSS JOIN (
        SELECT AVG(value) AS mean, STDDEV(value) AS dev 
        FROM randomNumbers
    ) AS agro
ORDER BY num.value;

agro
是由子选择创建的结果集的别名-这是位于FROM子句中的子选择的要求,以便可以正确引用列。我不知道为什么您的查询工作不正常。您是否尝试过自行运行subselect

SELECT AVG(value) AS mean, STDDEV(value) AS dev FROM randomNumbers;
这可能无法修复任何问题,只能尝试在别名之前添加
AS

SELECT num.value, agro.mean, agro.dev
FROM randomNumbers AS num
    CROSS JOIN (
        SELECT AVG(value) AS mean, STDDEV(value) AS dev 
        FROM randomNumbers
    ) AS agro
ORDER BY num.value;

谢谢,问题解决了。。。我已经标记了缩进,但应该使用空格…谢谢,问题解决了。。。我已经标记了缩进,但应该使用空格。。。。