解释MySQL嵌套的SELECT语句

时间:2011-07-19 20:39:03

标签: mysql sql syntax

我绝不是MySQL专家,但在阅读SELECT声明的文档后,我找不到问题的答案。

我有这样的声明:

SELECT COUNT(*)=x.c FROM someTable, 
    (SELECT COUNT(*) c 
     FROM someTable 
     WHERE firstId <= secondId) x;

我试图找出x.c在查询上下文中的含义?具体来说,x似乎挂在那里的是什么?

我将嵌套的SELECT解释为SELECT COUNT(*) as c,将行计数的别名设为cx也是如此?它的别名是什么?

谢谢!

6 个答案:

答案 0 :(得分:2)

他们将子查询命名为“x”,在子查询中他们将计数命名为(*)“c”。所以“x.c”表示子查询返回的计数。

答案 1 :(得分:2)

x是子查询的别名 - 您会注意到子查询后面有一个x,表示它的别名。

答案 2 :(得分:2)

x是一个表别名 - 括号中嵌套SELECT语句的名称。

COUNT(*)=x.c

布尔条件是someTable的总行数等于someTable的行数firstId <= secondId

x.c是子查询返回的计数的列名。

答案 3 :(得分:1)

x是表(SELECT COUNT(*) c FROM someTable WHERE firstId <= secondId)的别名。

答案 4 :(得分:1)

MySQL要求表子查询具有唯一的别名。您会注意到子查询末尾有x,这使得子查询结果显示为来自表x

在这种情况下,外部查询中的x.c表示在别名表c中引用字段x(计数结果),这是子查询。

答案 5 :(得分:0)

X是已加入someTable的别名,以及您加入someTable的选择。我想是这样的:D

我猜对了,对我来说是对的:P