【问题标题】:Unrecognized statement type. (near "WITH" at position 0)无法识别的语句类型。 (位置 0 的“WITH”附近)
【发布时间】:2019-01-16 11:21:24
【问题描述】:

我正在使用 mysql phpmyadmin,版本 10.1.34-maraiDB。 我无法执行以下 cte 代码。 the code error shown when i run the code

WITH cte (Employee_ID, First_Name, Last_Name,Email, Phone, Hire_Date, 
    Manager_ID, Job_Title) AS
(
    SELECT Employee_ID, First_Name, Last_Name,Email, Phone, Hire_Date, 
        Manager_ID, Job_Title
    FROM employees
)

SELECT * FROM cteEmp;

【问题讨论】:

  • 你为什么使用 CTE 这是一个简单的查询。什么是 CteEmp?您还没有指定任何地方

标签: phpmyadmin mariadb


【解决方案1】:

仅从 MariaDB 版本 10.2.1 开始支持 WITH 公用表表达式子句。来自documentation

公共表表达式 WITH 是在 MariaDB 10.2.1 中引入的。

但是,您可以简单地将 CTE 直接内联到查询中,它应该可以工作。在您的特定情况下,您可以只执行 CTE 中的代码:

SELECT Employee_ID, First_Name, Last_Name,Email, Phone, Hire_Date,
    Manager_ID, Job_Title
FROM employees;

【讨论】:

  • 我们被要求在 CTE 中使用递归 SQL 连接,我无法确定我的代码是对还是错,因为它不适用于我的版本。也许我会尝试更新我的 MaraiDB 版本。
  • @jeromenas 检查 MariaDB 文档,因为递归 CTE 需要比我上面列出的非递归 CTE 更高的版本。
  • 正在下载
  • 自 MariaDB 10.2.2 起支持递归公用表表达式。
猜你喜欢
  • 1970-01-01
  • 2022-01-21
  • 2021-11-24
  • 2019-03-13
  • 2018-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-30
相关资源
最近更新 更多