【发布时间】:2021-04-15 17:45:16
【问题描述】:
我正在尝试学习 MySQL 中 CTE 背后的直觉。我真正想了解的是如何创建嵌套查询。例如,我尝试运行此代码,但出现语法错误 -
WITH cte AS
(
SELECT h.hacker_id, s.challenge_id, s.max_score FROM Hackers h
INNER JOIN (
SELECT hacker_id, challenge_id, max(score) as max_score FROM Submissions
GROUP BY hacker_id, challenge_id
) s ON h.hacker_id=s.hacker_id
)
SELECT * FROM cte
这段代码有什么问题?我正在使用 MySQL。
【问题讨论】:
-
您的代码看起来不错。你遇到了什么错误?
-
ERROR 1064 (42000) at line 1:您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,以了解在附近使用的正确语法...
-
这是来自hackerrank的一个练习,我试图用它来学习sql。 hackerrank.com/challenges/contest-leaderboard/…
-
还有什么
SELECT VERSION();返回?必须至少为 8.0.1 才能支持 CTE 语法。 -
@Parma 。 . .您正在使用不支持 CTE 的旧版本 MySQL。使用更新的版本。
标签: mysql sql common-table-expression mysql-error-1064