我正在MySQL上运行这个查询

SELECT ID FROM (
    SELECT ID, msisdn
    FROM (
        SELECT * FROM TT2
    )
);

它给出了一个错误:

每个派生表都必须有自己的别名.

是什么导致了这个错误?

推荐答案

每个派生表(又名子查询)都必须有一个别名.也就是说,括号中的每个查询都必须有一个别名(AS whatever),该别名可用于在外部查询的其余部分中引用它.

SELECT ID FROM (
    SELECT ID, msisdn FROM (
        SELECT * FROM TT2
    ) AS T
) AS T

当然,在您的情况下,整个查询可以替换为:

SELECT ID FROM TT2

Mysql相关问答推荐

为什么SQL会打印\\.& '而不是\.'在命令行上?

正在获取MySQL死锁,因为这个查询需要很长时间.

根据SQL中的平均范围对学生进行排名

将类图转换为SQL数据库

在MySQL查询中查找和替换表内的值

为两个中的每一个 Select 最大和最小传递条件

MySQL,递归 CTE.它如何以这种句法形式工作?

go&mysql&docker 拒绝连接

如何同时从同一个表中 Select 从 SQL 表中删除行

MySQL 将分组 JSON Select 转换为单个 JSON 对象

MySQL 8.0.30 正则表达式词匹配特殊字符

插入二进制数据会导致Data too long for column...

无法通过迁移在现有表中插入行 - Rails 6

使用 ON DUPLICATE KEY 将列增加一定数量 MySQL NodeJS

基于两个单元格值的 SQL 过滤表

如何在 Laravel 5.1 中获取数据库中的表列表

你如何在 Node.js 中模拟 MySQL(没有 ORM)?

在 spring-boot jpa hibernate 中 >4<24 后与 Db 的连接终止

如何将 MySQL 5.7 更新到新的 MySQL 8.0?

MySQL如何为数据库中的所有表生成DDL