我绝不是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
,将行计数的别名设为c
,x
也是如此?它的别名是什么?
谢谢!
答案 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