Mysql别名的别名

Mysql Alias of alias

我正在尝试 运行 这个 样本 查询 :
SELECT * FROM (SELECT * FROM orders WHERE id > 2) AS o1 JOIN o1 AS o2 ON o1.id = o2.id;

但出现此错误:

Error Code: 1146 Table 'pnu.o1' doesn't exist

我应该如何加入子查询本身?

您的数据库中不存在 o1。您将其创建为 alias,但不能重复使用此 alias

您将不得不再次编写此子查询并为其创建一个新别名:

SELECT * FROM 
    (SELECT * FROM orders WHERE id > 2) AS o1 
    JOIN 
    (SELECT * FROM orders WHERE id > 2) AS o2 
    ON o1.id = o2.id;

或者临时 table 可能是替代方案。