【发布时间】:2022-01-19 16:25:02
【问题描述】:
运行具有相似语法的查询:
WITH table1
AS
(SELECT
COUNT(*)
FROM photos
),
table2 AS (
SELECT
COUNT(*)
FROM
users
)
SELECT table1 / table2;
我收到以下错误,但不知道为什么?对 SQL 来说真的很新。谢谢!
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以获取在“table1 AS”附近使用的正确语法
【问题讨论】:
-
想一想,
table1和table2是常见的 table 表达式,而不是列。您不会将 CTE 划分为另一个;它们不是标量值。在这里使用 2 个子查询会更好。 -
Fanciful...为计数分配别名并在主查询中引用它们
-
SELECT VERSION()返回什么?您需要使用 8.0 版才能使用WITH ...语法。早期版本不支持 CTE。 -
@BillKarwin 我运行它,它显示 5.7.36-0ubuntu0.18.04.1,我猜它不支持这个?