问题
mysql> select 编号 from (select 编号,姓名 from qz1);
ERROR 1248 (42000): Every derived table must have its own alias
原因:
select * from 表名,此为标准格式
而以上的查询语句,"表名"的位置其实是一个结果集,mysql并不能识别
此时给结果集设置一个别名,并且以select a.编号,姓名 from a;的方式查询,将此结果集视为一张表就可以正常查询出数据了
【相当于select qz1.编号,姓名 from qz1; select 表.字段,字段 from 表;】
mysql> select a.编号,姓名 from (select 编号,姓名 from qz1) a;
+--------+--------------+
| 编号 | 姓名 |
+--------+--------------+
| 1 | 刘一 |
| 2 | 王二 |
| 3 | 李四 |
| 4 | 田五 |
| 5 | 教授 |
| 6 | 小明 |
| 7 | 刘二 |
| 8 | 刘二蛋 |
| 9 | 刘小天田 |
+--------+--------------+
这篇博客介绍了在MySQL中遇到的错误`ERROR1248(42000):Everyderivedtablemusthaveitsownalias`。问题源于尝试在一个查询语句中使用未指定别名的结果集。解决方法是在子查询后添加别名,如`selecta.编号,姓名from(select编号,姓名fromqz1)a;`。通过这种方式,将结果集视作一个表进行操作,从而正确地获取数据。
3899

被折叠的 条评论
为什么被折叠?



