查询仅在 WITH ... AS 语句内时不起作用

query not working only when inside WITH ... AS statement

我有一个非常困难的查询要问,所以我想使用 WITH ... AS 语法将其分解为更小的步骤。我正在尝试构建一个虚拟查询来了解它是如何工作的,它基本上选择属于某个公司的电台,然后再次选择所有内容。

WITH company_stations AS (
    SELECT * FROM Station WHERE Station.stationProvider = 'olympia_odos'
) SELECT *  FROM  company_stations;

内部查询本身运行良好

SELECT * FROM Station WHERE Station.stationProvider = 'olympia_odos'

但是当我在 with as 语句中使用它时,它给了我非常有用的错误消息

ERROR 1064 (42000):您的 SQL 语法有误;查看与您的 MySQL 服务器版本相对应的手册,了解在第 1

行 'company_stations AS (SELECT stationName FROM Station WHERE Station.stationProvid' 附近使用的正确语法

我尝试搜索错误 1064 (42000),但似乎遇到此错误的每个人都在构建、填充或访问数据库的过程中。这些我都做了,但是具体查询好像有问题

我还尝试了所有常见的嫌疑人,例如 ' or " or `, ( or no ( etc.

CTE 表达式在 MySQL 8.0 之前不受支持 您可以改用子查询:

SELECT * FROM (
    SELECT * FROM Station WHERE Station.stationProvider = 'olympia_odos'
) AS company_stations;