所以我使用UNION一起加入了3个查询,想要计算结果中的行数,但这有点奇怪。它实际上有效,并给出正确的答案,但它没有正确分配“AS”部分。
SELECT COUNT(*) FROM (
(Long Select Statement)
UNION
(AnotherLong Select Statement)
UNION
(Even Longer Select Statement)
)
AS NoOfTweets";
结果是正确的,但不是将其分配给“NoOfTweets”,而是将其分配给“Count(*)”。如果我删除“AS NoOfTweets”它将停止工作。如果我删除一些括号,它将停止工作。经过漫长的一天后,我的想法很少!如果需要的话,我可以发布整个代码,但不是因为它很长,而且我认为这有效。
先谢谢你,杰克。
编辑:已修复:
SELECT COUNT(*) NoOfTweets FROM (
(Long Select Statement)
UNION
(AnotherLong Select Statement)
UNION
(Even Longer Select Statement)
)
AS NoOfTweets";
谢谢你们:)
答案 0 :(得分:4)
答案 1 :(得分:3)
SELECT COUNT(*) NoOfTweets FROM
(Long Select Statement)
UNION
(AnotherLong Select Statement)
UNION
(Even Longer Select Statement)
或
SELECT COUNT(*) AS NoOfTweets FROM
(Long Select Statement)
UNION
(AnotherLong Select Statement)
UNION
(Even Longer Select Statement)
答案 2 :(得分:3)
您必须在您计算的项目之后使用AS
:
SELECT COUNT(*) AS `NoOfTweets`
FROM ( ... )
还要小心你接近尾声的"
。或者它可能来自更长的字符串。
答案 3 :(得分:1)
错误是Every derived table must have its own alias
这是我不知道的事情,所以感谢教育:)
http://sqlfiddle.com/#!9/d30f4/4
很高兴MySQL给出一个解释 - 我在SQLFiddle上尝试使用MS SQL,只是得到了Incorrect syntax near ')'.
,这对我们没有帮助!
因此,您的'NoOfTweets'是结果列的名称,也是SQL引擎所需的'派生表',但可能是不同的名称......它不会在结果中返回。命名派生表的目的在于您希望加入其他表并引用连接中的字段。