![MySQL「 Every derived table must have its own alias」错误修复方法](https://kalacloud.com/static/ad5bd2fa8963abc4ce481a2c19c228d6/ef245/head.jpg)
本文首发:《[MySQL「 Every derived table must have its own alias」1248 错误修复法](https://kalacloud.com/blog/what-is-the-error-every-derived-table-must-have-its-own-alias-in-mysql/)》
在写带有子查询或者在查询时产生临时表的查询时,可能会出现这个错误:
```
ERROR 1248 (42000): Every derived table must have its own alias
```
意思是「每一个派生出来的表都必须给它命名一个自己的别名」
我们看个例子:
假设有一张「顾客购买记录」的表 - `kalacloud_purchases` 记录了顾客在商店购物的信息。我们要写个查询,查看哪些客户在多个商店买过东西:
```
SELECT DISTINCT customer_id, SUM(1)
FROM ( SELECT DISTINCT customer_id, store_id FROM kalacloud_purchases)
GROUP BY customer_id HAVING 1 < SUM(1);
```
![every-derived-table-must-have-its-own-alias 1248 错误](https://kalacloud.com/static/96397bbd4b8f8fef4cc0a9f2b1c4c774/b2b2c/01-every-derived-table-must-have-its-own-alias.png)
运行后,可以看到出现 1248 错误:`Every derived table must have its own alias`
在这段报错代码中:
```
FROM ( SELECT DISTINCT customer_id, store_id FROM kalacloud_purchases)
```
这段命令会先查 `kalacloud_purchases` 表,然后生成一张新的临时表,如果这个临时表没有命名,就会导致 1248 错误。我们只需要加上 「as 临时表别名」即可修复错误
![添加别名,修复1248 错误](https://kalacloud.com/static/d76dfdfba409a4337a0af6f2812fa86e/ed8a2/02-alias.png)
加上「AS customer」别名, 这样就解决了这个问题。
## 使用「卡拉云」搭建数据看板
我们可以在命令行中直接执行 SQL 对需要的数据进行查询,不过有时候一些运营数据,分析数据需要周期性的反复查询,总是复制粘贴代码非常麻烦。有时我们还需要和各部门协同,将查询好的数据分享给合作组。这种场景下,你可以试试卡拉云。
卡拉云可以快速搭建数据看板和数据后台,只要你会写 SQL ,完全不用懂前端也可在 5 分钟内搭建一套根据自己需求设计的数据看板,还可以做成数据查询系统,一键分享给协作组的同学使用,再也不用担心自己沦为人肉查询机。
![使用卡拉云轻松搭建企业内部工具](https://kalacloud.com/5400a60956e16d655e0297c5d6e5a8d2/98-kalacloud-gif.gif)
卡拉云不仅可以像命令行一样灵活,还可根据自己的工作流,定制开发。无需繁琐的前端开发,只需要简单拖拽,即可快速搭建企业内部工具。**数月的开发工作量,使用卡拉云后可缩减至数天。**
![卡拉云可一键接入常见的数据库及 API](https://kalacloud.com/static/18822b2a23183deb7d11dd484a7f65aa/71c1d/97-kalacloud-sql.png)
卡拉云可快速接入的常见数据库及 API,可根据公司工作流需求,轻松搭建数据看板,并且可分享给组内的小伙伴共享数据,仅需拖拽一键生成前端代码,简单一行代码即可映射数据到指定组件中。
![搭建数据看板,直接导出数据](https://kalacloud.com/static/f5669b9993d738a2c3b4d4a72419ae85/d3e24/96-kalacloud-list.jpg)
卡拉云可直接添加导出按钮,导出适用于各类分析软件的数据格式,方便快捷。
下图为使用卡拉云在 5 分钟内搭建的「[优惠券发放核销](https://kalacloud.com/blog/coupon-system-design/)」后台,仅需要简单拖拽即可快速生成前端组件,只要会写 SQL,便可搭建一套趁手的数据库工具。
![使用卡拉云在 5 分钟内搭建的「优惠券发放核销」后台](https://kalacloud.com/static/34625d3adaea4ed250ff3f05b863e47c/cca35/99-kalacloud-sql-index.png)
立即开通[卡拉云](https://kalacloud.com/?utm_medium=register),搭建属于自己的数据后台工具吧。
有关 MySQL 教程,可继续拓展学习:
- [如何远程连接 MySQL 数据库,阿里云允许外网连接教程](https://kalacloud.com/blog/how-to-allow-remote-access-to-mysql/)
- [MySQL 时间戳用什么类型 - MySQL 时间函数详解](https://kalacloud.com/blog/difference-between-mysql-datetime-and-timestamp-datatypes/)
- [MySQL 中如何实现 BLOB 数据类型的存取,BLOB 有哪些应用场景?](https://kalacloud.com/blog/how-to-use-the-mysql-blob-data-type-to-store-images-with-php-or-kalacloud/)
- [如何在 MySQL / MariaDB 中跳过多张表导出或指定多张表导出备份](https://kalacloud.com/blog/how-to-dump-database-and-ignore-or-specific-some-tables-with-mysqldump-in-mysql/)
- [MySQL 触发器的创建、使用、查看、删除教程-六种情况实战](https://kalacloud.com/blog/how-to-manage-and-use-mysql-database-triggers/)
- [如何将 MySQL / MariaDB 的查询结果保存到文件](https://kalacloud.com/blog/how-to-save-mysql-mariadb-query-output-to-a-file/)
- [MySQL 分组查询实战 如何查询每组最第一条、最后一条记录,单多字段查询、分组筛选、最大小值排序](https://kalacloud.com/blog/how-to-group-by-find-first-and-last-record-in-mysql/)
有疑问加站长微信联系(非本文作者))